には多数のユーティリティがインストールされていますがC:\program files (x86)\git\bin
、その多くは組み込みのコマンド ライン関数をシャドウします。これに違反しないように、そのフォルダーを PATH に追加しないようにしますが、diff a.txt b.txt
どこにでも入力して 2 つで diff を実行できるようにしたいと考えています。
私が試したこと:
- サブキーを追加しまし
diff.exe
た[HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths]
- (PATH上にある)を作成し、PATHEXTに追加
diff.lnk
しましたC:\dev
.LNK
diff.bat
次のコードで を作成しました:@"C:\Program Files (x86)\git\bin\diff.exe" *$
唯一機能した方法は最後の方法でしたが、これは ( は実行されますがdiff
) コマンドラインで指定したファイルを見つけることができません。
同様に、2 番目の方法でdiff
は、現在内部にいる場合は実行できますC:\dev
が、他の場所では実行できません。
doskey
エイリアス マシンとして機能するスクリプト (特にcmd start で)がありますnpp=notepad++
が、このためにそれを使用するのは避けたいと思います。必要な場合は使用します。
何か提案はありますか? 上記の方法が機能しなかった理由について何か考えはありますか?
答え1
上記の方法が機能しなかった理由をご存知ですか?
いくつか。
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
はプログラムの実行に使用されないcmd
為、には影響しません。cmd
ShellExecuteEx
- ファイルの作成は
.lnk
機能するはずです。 あなたの説明からすると、おそらくこの発言は
実際には真実ではありません。C:\dev
私の にありますPATH
。 diff.bat
位置パラメータを置換するために使用した構文が意味不明だったため、期待通りに動作しませんでした。これは*$
偶然の誤用ではありません。前述のように、%*
は、スクリプトで解釈される正しい構文です。cmd
。 (%#
これは、ボーナスとしてサポートされている Take Command の正しい構文でもあります。)