今、それはそのような混乱です。コマンドラインで些細なことをする新しいプログラムをインストールするたびに、それをパスに追加する必要があります。実際、私はRubyで開発しており、gem(プラグイン/拡張機能)でさえ独自の実行可能ファイルを持っていて、異なるフォルダーに保存されているため、アプリケーションごとに複数のパスを追加する必要があります。 PATH環境変数で30個のパスをプッシュするようになりました。
私はそれらをある種のホームフォルダにコピーして貼り付け、それにパスを設定することに注意しています。気分が悪いだけです。私が見逃している確立されたベストプラクティスはありますか?
アーカイバなど、いくつかの小さな自己完結型のユーティリティが私の%UserProfile%\Apps
フォルダにあります。次に、%UserProfile%\Batches
にある、私が作成して頻繁に使用するバッチファイルがいくつかあります。残りの部分については、それらをPATH
に追加するだけです。これは、インストーラーによって、または
setx PATH "%PATH%;%CD%"
適切なディレクトリから。そこにあるパスの数は、コンテンツが長くなりすぎた場合にのみ問題になるはずです(環境変数には長さの制限があります)。
あなたはそのようなプログラムのために小さなラッパーバッチファイルを書くことができます(そして私は時々そうします)。実行可能ファイルを別のディレクトリにコピー/ハードリンク/シンボリックリンクするだけでは、Windowsでは機能しない可能性がありますが、たとえばプログラムFooのバッチファイルを簡単に作成できます。
@"%ProgramFiles%\Foosoft Foo\foo.exe" %*
次に、それらのバッチファイルを保存するフォルダーをPATH
に追加できます。
具体的なベストプラクティスについてはよくわかりません。しかし、私はPATH変数を管理するためにGUI PATHEditorツールを使用することを好みます。明確に維持できるように。
PATHエディターのリスト-
ほとんどのWindowsマシンにPowerShellが付属しているので、ユーザープロファイルで多くのsal/Set-Aliasコマンドを使用します。したがって、使用するアプリが1つまたは2つしかない場合は、追加するのではなく、これら2つのコマンドのエイリアスを作成します。パスへのアプリフォルダー全体。例としては、SQL Management Studio、Notepad ++、TFS Power Tools(コマンドラインツール、tfpt.exe)があります。また、マシン間でユーザープロファイルをコピーするので、エイリアスを作成する前に、現在のマシンにそのアプリが存在するかどうかを確認できます(アプリがインストールされていない場合は警告が表示されることがあります)。
filter ctQuoteString { "`"$_`"" }
filter ctResolvePath { Resolve-Path $_ | select -ExpandProperty Path | ctQuoteString } # used in Edit.ps1
$nppExe = "C:\Program Files (x86)\Notepad++\notepad++.exe"
if ((Test-Path variable:\nppExe) -and (Test-Path $nppExe)) {
function EditNotepadPP {
param ([parameter(ValueFromPipelineByPropertyName=$true)][Alias("FullName","FileName")]$Path)
begin { if (! $nppExe) { throw 'variable $nppExe is not defined' } }
process {
$Path | ctResolvePath | % { # ctResolvePath will get full path and surround with quotes
& $nppExe $_
}
#AddEditHistory $Path #if you need detailed time tracking, might help to create a log what files you're editting
}
}
Set-Alias npp EditNotepadPP
}
# I have similar functions for other apps.
Set-Alias vs EditVS
Set-Alias tfe EditTFCheckout