디렉토리를 추가하지 않고 기본 경로에 .exe 추가


22

예를 들어, PATH에 notepad ++를 추가하고 싶지만 디렉토리에는 uninstall.exe다른 파일 / 실행 파일이 포함되어 있으며 경로를 "폴링"하기를 원하지 않습니다. 하나만 추가해도 notepad++.exe됩니까?

답변:


17

경로에있는 디렉토리에 배치 스크립트를 추가하면 다음과 같습니다.

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

이름을 지정할 수 있습니다 notepad++.cmd. 도움말 섹션에서는 스위치에 대한 정보를 쉽게 얻을 수 있습니다.

나는 모든 스크립트와 명령 행 프로그램을 %PATH%다음에 추가 된 디렉토리에 넣었다 . C:\Users\Public\Command\ ... 그 디렉토리는 모든 컴퓨터와 가상 머신에 동기화된다.


8

다음과 같은 내용으로 배치 파일을 만듭니다.

@"C:\Program Files\Git\bin\git.exe" %*

.bat파일은 git.bat에있는 디렉토리 와 같은 파일 로 저장해야 합니다 PATH.

@명령을 호출 쉘로 에코시키는 것을 억제합니다. 인용 부호는 ""공백이 인수 구분 기호로 해석되지 않도록합니다. %*대신 배치 파일에 인용 된 실행 파일에 인수를 붙여 넣습니다.

이제 배치 파일 이름의 일부를 사용하여 실행 파일을 호출 할 수 있습니다 .bat. 제 경우에는 git.

참고 문헌 :


CMD를 닫을 때까지 끊는 많은 프로그램의 경우. start내 대답에 표시된 것처럼 그것을 피하기 위해 사용해야 합니다.
paradroid

@ paradroid : 감사합니다. 그러나 요청하지 않는 한 부모에게 붙어있는 것이 표준 터미널 동작입니다. 사용자가 수행 한 start git것이 아니라 수행해야합니다. 이 경우 배치 스크립트는 더 나은 역할을 할 exec요청한 프로세스에 거라고하지만 이것은 Windows에서 수 없습니다 : serverfault.com/questions/315077/... . 나는 앞에 꽂을 수 call있었지만 그것은 헛소리 였고 대부분 무의미했다.
매트 소목 장이

3

바로 가기를 notepad++.exe로 드래그하십시오 C:\Windows\System32.


또는 @Synetech inc.에서 제안한대로 바로 가기를 별도의 디렉토리 (예 :)에 배치 C:\Shortcuts한 다음 해당 디렉토리를 다음에 추가 할 수 있습니다 %PATH%.

setx PATH "%PATH%;C:\Shortcuts"

일부 의견에서 알 수 있듯이 이것은 실행 대화 상자에서만 작동합니다. 명령 프롬프트에서 바로 가기를 시작하려면 바로 가기 확장명 (.LNK)을 PATHEXT 환경 변수에 추가해야합니다.

setx PATHEXT %pathext%;.LNK

참고 문헌 :

실행 대화 상자를 사용하여 응용 프로그램을 쉽게 시작할 수 있습니까?


1
이것은 배치 파일과 반대로 선호되는 솔루션입니다. 경로의 (다른) 디렉토리에 바로 가기를 작성하십시오. Windows 디렉토리를 오염시키지 마십시오! 이 목적을 위해 특별히라는 폴더가 있습니다 Shortcuts.
Synetech

1
에 대한 잘못된 구문입니다 setx. 등호를 사용하지 않고 IIRC에서는 현재 경로에 %PATH%공백이 있으면 전체 경로를 따옴표로 묶어야합니다 .
paradroid

그리고 SETX변수를 확장하는 것을 피하기 위해 백분율 대신 변수에 물결표를 사용 하지 않습니까? 일부 env-var 설정 도구의 기능은 다음과 같습니다.
Synetech

2
작동하지 않습니다. 기본적으로 (git.exe를 드래그하고 있습니다) "git-Shortcut", "git.exe", "git", "git.cmd"등의 조합으로 이름을 바꾸면 아무런 영향이 없습니다. 바로 가기를 인정하지 않습니다.
매트 소목 장이

3
이것은 Run As대화 상자 에서 호출 할 때만 작동 하며 명령 프롬프트에서는 작동하지 않습니다.
매트 결합 자

1

Path의 폴더를 사용하여 심볼릭 링크 를 만드십시오 mklink.

예 (관리자 명령 프롬프트에서)

mklink "C:\Users\Me\Documents\Paths\np.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"

0

App Paths 레지스트리 키는 정확하게 이것을 수행합니다. notepad ++. exe의 경로를 "\ program files \ ..."로 설정하면 Start-Run, cmd, ...에서 실행 파일과 같이 실행할 수 있습니다. % PATH %의 디렉토리

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

참조 : /programming/4822400/register-an-exe-so-you-can-run-it-from-any-command-line-in-windows


이것은 cmd에서 실행 가능하지 않습니다-start-run에서만 또는 cmd에서 "start myapp.exe"에서처럼 "start"접두어를 붙여야합니다
Tahir Hassan

동의 한 명령 프롬프트에는이 변수를 인식 할 수있는 기능이 없습니다. PowerShell은이를 인식합니다. 이 솔루션은 더 중요한 것은 디렉토리에만 적용되므로 주제와는 관련이 없습니다.
토드 파트 리지

0

나는 여기에 제시된 해결책을 좋아하지 않았으므로 다른 것을 시도했다.

  1. 링크 쉘 확장 설치 (자세한 정보는 여기 )

  2. Marteen이 제안한 것과 같은 바로 가기를 모두 저장할 폴더를 만들어서에 추가하십시오 %PATH%. Rapid Environment Editor 를 작성 C:\Shortcuts하고 사용 하여 PATH에 추가했습니다.

  3. 경로에 추가 할 파일을 마우스 오른쪽 버튼으로 클릭하고 (탐색기에서) "픽 링크 소스"를 클릭하십시오.

  4. 방금 만든 폴더를 마우스 오른쪽 버튼으로 클릭하고을 클릭 Drop As > Symbolink Link합니다.

  5. 원한다면 symbolink 링크의 이름을 바꾸십시오.

그게 다야. 이제 명령 행을 통해 프로그램에 액세스 할 수 있어야합니다. 새 폴더를 PATH에 추가 한 경우 cmd.exe, Cmder 또는 ConEmu 또는 사용중인 모든 항목을 다시 시작해야합니다. 그런 다음 다시 시작하지 않고 새 프로그램을 추가 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.