setx
コマンドを使用してOGRE_HOME
を設定しました:
setx OGRE_HOME D:\Program Files\OgreSDK
次に、OGRE_HOME
の値に変更する必要があります。設定したすべての値を検索するにはどうすればよいですか?コマンドをもう一度実行すると、次のように表示されます。
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Ogre SDKへのパスには、スペース文字が含まれています。これは、別の引数への区切り文字として解釈されます。パスを"
で囲んで、setx
への1つの引数として保持します。
setx OGRE_HOME "D:\Program Files\OgreSDK"
OGRE_HOME
環境変数の現在の値を確認するには:
echo %OGRE_HOME%
値を設定してすぐにその値を確認しようとしている場合は、新しいコマンドプロンプトシェルを開いて値を確認する必要がある場合があります。
現在設定されているすべての環境変数を表示するには、次のコマンドを実行します。
set
特定のプレフィックスを持つ環境変数のみを表示するには(つまり、FOO
はFOOBAR
とFOOBAZ
を表示します)、そのプレフィックスをset
の後に置きます。
set PREFIX
または、GUIを使用して環境変数を編集できます(ここではWindows 7を想定しています)。
Computer
を右クリックし、Properties
を選択しますAdvanced system settings
をクリックしますAdvanced
タブにいることを確認しますEnvironment Variables...
をクリックしますダイアログがポップアップし、ユーザー固有の環境変数とシステム全体の環境変数が表示されます。値を選択し、「新規」/「編集」/「削除」ボタンを使用して、それらを操作します。
setxおよびほとんどすべてのWindowsコマンドラインコマンドは、特定の特殊文字の影響を受けます。それらの中にはスペース文字がありますが、エントリを区切るために使用される引用符もあります。
@ ajp15243で既に述べたように、2つの引用符の間のパスをロックすることでスペースを処理できます。しかし、パスがあり、スペースが含まれているためにそれらのパスがすでに引用符で囲まれている場合はどうなりますか?次に例を示します。
MY_PATHS="c:\Program Files\path1";"c:\Program Files(x86)\Path2"
この場合、setxを使用するときに、これらの内部引用符にエスケープ文字を配置する必要があります。そうしないと、混乱して、リストしたエラーが発生します。例えば:
setx -m MY_PATHS "\"c:\Program Files\path1\";\"c:\Program Files(x86)\Path2\""
引用符を忘れたため、コマンドプロンプトでエラーが発生しています。次のように入力する必要があります。
setx OGRE_HOME “D:\Program Files\OgreSDK”
設定済みのすべての値を表示するには、次のいずれかを入力します。
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
OR
reg query HKEY_CURRENT_USER\Environment
@ ajp15243の回答 の補遺として。コマンドプロンプトまたはバッチファイルではなくPowerShellで同じことを行う場合は、次のように、エスケープされた二重引用符を先頭に付けてSETX
を呼び出す必要があります。
$my_path = "%PROGRAMFILES%\MySQL\MySQL Server 5.7\bin\"
$hkcu_path = (Get-ItemProperty hkcu:\Environment).PATH + ";" + $my_path
SETX PATH "`"$hkcu_path" # note the leading escaped quote
ただし、そうすると、hkcu:\Environment\PATH
の値にtrailing二重引用符が追加される可能性があるため、これも行う必要がある場合があります。
$dirty_path = (get-itemproperty hkcu:\Environment).PATH
$clean_path = $dirty_path -replace '"',''
SETX PATH $clean_path