WindowsでシステムのPATH
環境変数にC:\xampp\php
を追加しようとしています。
環境変数ダイアログボックスを使用して追加しました。
しかし、私が自分のコンソールに入力すると:
C:\>path
新しいC:\xampp\php
ディレクトリは表示されません。
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
2つ質問があります。
PATH
変数に追加する方法これはレジストリを変更するだけです。既存のプロセスはこれらの値を使用しません。新しいプロセスは、開始されるとそうなりますafterこの変更andは、親から古い環境を継承しません。
コンソールセッションの開始方法を指定しませんでした。これを確実にする最良の方法は、コマンドシェルを終了し、再度実行することです。その後、更新されたPATHを継承する必要があります。
GUIでPATH
を変更したら、コンソールウィンドウを閉じてからもう一度開きます。
変更後に開始されたプログラムだけが新しいPATH
を見るのでこれはうまくいきます。
開いたコマンドウィンドウでこのコマンドを実行します。
set PATH=%PATH%;C:\your\path\here\
このコマンドは、現在のPATH
にC:\your\path\here\
を追加します。
それを分解する:
set
- cmdの環境変数を変更するコマンド 現在のcmdセッションに対してのみ ;他のプログラムやシステムは影響を受けません。PATH=
- PATH
は一時的に変更される環境変数です。%PATH%;C:\your\path\here\
- %PATH%
部分は現在のPATH
の値に展開され、;C:\your\path\here\
はそれに連結されます。これが新しいPATH
になります。警告: この解決策 はあなたのPATHとシステムの安定性にとって有害な可能性があります 。副作用として、ユーザーとシステムのPATHをマージし、PATHを1024文字に切り捨てます。このコマンドの効果は元に戻せません。最初にPATHのバックアップを作成してください。詳しくはコメントを参照してください。
盲目的にこれをコピーアンドペーストしないでください。慎重に使用してください。
永久的に PATH
コマンドでsetx
へのパスを追加することができます。
setx /M path "%path%;C:\your\path\here\"
システムのPATH
ではなくユーザーのPATH
を設定したい場合は、/M
フラグを削除してください。
ノート:
setx
コマンドは、Windows 7以降でのみ使用可能です。このコマンドは昇格したコマンドプロンプトから実行する必要があります。
現在のセッションに対してのみ変更したい場合は、 set を使用してください。
set
またはsetx
コマンドは不要で、単にターミナルを開いて次のように入力します。
PATH
これは、PATH変数の現在の値を示しています。ここでディレクトリを追加しますか?次のように入力します:
PATH %PATH%;C:\xampp\php
何らかの理由でPATH変数をクリアする場合(パスがまったくない、またはすべてのパスを削除する)、次のように入力します。
PATH ;
更新
以下のコメントで指摘したDanial Wilsonのように、現在のセッションでのみパスを設定します。パスを永続的に設定するにはsetx
を使用しますが、現在のセッションではなく永続的にパスを設定しますが、変更を確認するには新しいコマンドラインを開始する必要がありますが、注意してください こちら 。
環境変数が存在するかどうか、またはその値を確認するには、ECHOコマンドを使用します。
echo %YOUR_ENV_VARIABLE%
この時代のPowerShellでは、PATHを次のように編集します。
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")
マシン全体ですべてのユーザーに変数を設定するには、最後の行は次のようになります。
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
PowerShellスクリプトでは、PATHに追加する前にC:\xampp\php
の存在を確認したい場合があります(以前に追加された場合)。あなたはif
条件式でそれを包むことができます。
それをまとめると:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
@ Nafscriptの最初のSETX
回答に対するすべてのコメントにうなずきます 。
SETX
はデフォルトであなたの user パスを更新します。SETX ... /M
はあなたの system パスを更新します。%PATH%
には、ユーザーパスが追加されたシステムパスが含まれていますPATH
をバックアップする - SETX
は1024文字を超えてあなたのがらくたを切り捨てますSETX %PATH%;xxx
を呼び出さない - システムパスをユーザーパスに追加するSETX %PATH%;xxx /M
を呼び出さない - システムパスにユーザーパスを追加するss64 SETXページ には、非常に良い例がいくつかあります。重要なのは、レジストリキーがSETX
vs SETX /M
の場所であることを示しています
ユーザー変数:
HKCU\Environment
システム変数
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
PATH
に追加append_user_path.cmd
@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1
PATH
append_system_path.cmd
。 管理者として実行する必要があります。
(Key
とSETX /M
修飾子が異なる以外は基本的に同じです)
@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M
最後に、ss64 SETXページで推奨されている _ setenv _ と呼ばれる改善されたバージョンがあり、これはユーザーまたはシステム環境変数の設定を分割するものです。
厳密には真実ではない
パーティーに遅刻 - あなたが既にPATHに追加したいディレクトリにいる場合は便利です。
set PATH=%PATH%;%CD%
edit:コメント通り - 標準ウィンドウのcmdで動作しますが、PowerShellでは動作しません。
PowerShellの場合、同等の%CD%
は[System.Environment]::CurrentDirectory
です。
Setxを使用してパスを誤って入力した場合はどうなりますか?最善の方法は、単にウィンドウのU.Iを介してです。 [コントロールパネル] - > [すべてのコントロールパネルの項目] - > [システム] - > [高度なシステム設定] - > [環境変数]
「パス」までスクロールして、「編集」を選択します。コピーしてお気に入りのエディタに貼り付けることで、パス全体を確認して編集することもできます。
既に含まれている実行可能ファイルを上書きする。
pATH = C:\ xampp\php;%PATH%;に設定します。
すべての答えとは別に、あなたがあなたのwindows環境変数を編集するためにNice GUIツールが欲しいならば、あなたは Rapid Environment Editorを使うことができます
それを試してみてください!安全に使えて、すごい!
Windows 10 LTSBで上記の提案をチェックし、 "help"の概要(cmdで 'command /?'をタイプすると見られる)を垣間見ると、PATHコマンドはという結論に至りました。現在のセッションに対してのみシステム環境変数のPath値を変更しますが、再起動後は、PATHコマンドを使用する前と同じように、すべての値がデフォルト値にリセットされます。
一方、管理者権限でSETXコマンドを使用すると、はるかに強力になります(または少なくともこのコマンドが次に使用されるまで、または次回これらの値が手動でGUI操作されるまで)。
しかし明快さのために私がここで私のために働いた最高のSETX構文使用法を共有することは誰かに役立つかもしれないと思いました:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
等号 '='は避けてください。スペースについては心配しないでください。パスの中にスペースが含まれている場合は、それ以上の引用符を挿入する必要はありません。分割記号 ';'仕事をする。
SETXの後に続くPATHキーワードは、システム環境変数の可能な値の中からどの値のセットを変更すべきかを定義し、引用符の中の%PATH%(パーセント記号で囲まれたWord PATH)は既存のままにするようOSに指示します。 PATH値をそのままにして、次のパス(分割記号「;」の後に続くパス)を既存の値に追加します。
HTH
要点 2 私はPATH
や他の環境変数を追加している簡単なバッチファイルを使っています。したがって、デフォルトでは環境変数による汚染はありません。このバッチファイルはどこからでもアクセスできるので、次のように入力します。
c:\>mybatchfile
-- here all env. are available
c:\>php file.php
コマンドプロンプトで、start
を先頭に付けることで、CmdにExplorerのコマンドラインを使用するように指示します。
だからstart Yourbatchname
。
名前がbatchfile.exe
のように登録する必要があります。
プログラムと文書はレジストリに追加することができるので、スタート - 実行ダイアログボックスまたはショートカットにパスを付けずに名前を入力すると、Windowsはそれらを見つけることができます。
これは一般的なregファイルです。以下の行を新しいテキストドキュメントにコピーし、anyname.regとして保存します。あなたのプログラムや文書でそれを編集してください。
Regeditが単一の\を使用してそのキー名を区切っているので、パスでは\を使用してキーパス内のフォルダー名を区切ってください。すべてのregファイルはREGEDIT4で始まります。セミコロンは行をコメントに変えます。 @記号は、名前付きの値ではなくキーに値を割り当てることを意味します。
ファイルは存在する必要はありません。これは、Win.exeを開くようにWord.exeを設定するために使用できます。
start batchfile
と入力するとiexplore.exeが起動します。
REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension>
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]
;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry
;Informs the Shell that the program accepts URLs.
;"useURL"="1"
;Sets the path that a program will use as its' default directory. This is commented out.
;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"
あなたはすでに別の答えで道について話されています。 cmdマクロについてはdoskey /?
も参照してください(これらは入力時にのみ機能します)。
CMDの起動コマンドを実行できます。 Windows Recource Kitテクニカルリファレンスから
オートラン
HKCU\Software\Microsoft\Command Processor
Data type Range Default value
REG_SZ list of commands There is no default value for this entry.
説明
Cmd.exeを起動するたびに実行されるコマンドが含まれています。
現在のPATH環境変数をバックアップします:cmd
を実行し、コマンドを実行します:path >C:\path-backup.txt
現在のパス値をC:\ path.txtファイルに取得します(同じ方法)
setx path "Here you should insert string from buffer (new path value)"
php -v
gtools からパッチを適用したもの
直感的な方法で物事をやります。
pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"
それと結果が表示されます新しいcmdを生成する必要はありません!
コントロールパネルに代わるより良い方法は、Pathenatorと呼ばれるsourceforgeのこのフリーウェアプログラムを使うことです。
https://sourceforge.net/projects/pathenator/ /
ただし、Windows 7、8、または10など、Dot.Net 4.0以上のシステムでのみ動作します。
cmd
コマンドを実行すると、そのコマンドウィンドウのすべてのシステム変数が更新されます。