에는 많은 유틸리티가 설치되어 있으며 C:\program files (x86)\git\bin
그 중 대부분은 내장 명령줄 기능을 섀도잉합니다. 따라서 이를 위반하지 않기 위해 해당 폴더를 PATH에 추가하지 않는 것이 좋지만 diff a.txt b.txt
어디에나 입력하고 두 폴더에 대해 diff를 실행할 수 있기를 원합니다 .
내가 시도한 것들:
diff.exe
다음에 하위 키 를 추가했습니다 .[HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths]
- (내 PATH에 있음)을 생성하고
diff.lnk
PATHEXT 에 추가 했습니다.C:\dev
.LNK
diff.bat
다음 코드를 사용하여 생성했습니다 .@"C:\Program Files (x86)\git\bin\diff.exe" *$
효과가 있었던 유일한 방법은 diff
명령줄을 통해 지정한 파일을 찾지 못하는 마지막 방법이었습니다.
diff
마찬가지로, 내가 현재 안에 있지만 다른 곳에는 없는 경우 두 번째 방법을 실행할 수 있습니다 C:\dev
.
나는 doskey
별명 머신으로 작동하는 스크립트를 가지고 있지만(특히: npp=notepad++
cmd start에서) 이를 위해 그것에 의존하고 싶지는 않습니다. 필요하다면 그렇게 하겠습니다.
어떤 제안이 있으십니까? 위의 방법이 왜 작동하지 않았는지 아시나요?
답변1
위의 방법이 왜 작동하지 않았는지 아시나요?
몇 가지.
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
프로그램을 실행하는 데 사용되지 않기cmd
때문에 에는 아무런 영향을 미치지 않습니다 .cmd
ShellExecuteEx
- 파일을 만드는 것이
.lnk
효과가 있었을 것입니다. 귀하의 설명으로 볼 때 다음 진술이 가장 가능성이 높은 것 같습니다.
실제로는 사실이 아닙니다.C:\dev
내 에 있습니다PATH
. diff.bat
모든 위치 매개변수를 대체하기 위해 사용했던 구문이 횡설수설했기 때문에 원하는 대로 작동하지 않았습니다.*$
우연한 배시즘도 아닙니다. 언급 한 바와 같이,%*
다음으로 해석되는 스크립트에서 해당 작업을 수행하는 올바른 구문입니다.cmd
. (%#
또한 보너스로 지원되는 Take Command의 올바른 구문이기도 합니다 .)