0

次のコマンドを実行して、システム環境変数を設定しています。

call C:\Windows\system32>reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
\Session Manager\Environment" /v JAVA_HOME /t REG_EXPAND_SZ /d "C:\Program Files\Java
\jdk1.6.0_37"

私は自分のパスで同様のことをしたいのですが、そこにある値を上書きしたくありません。それらに追加したいだけです。上記のコマンドを実行すると、上書きまたは更新されますか? 上書きする場合、代わりに更新するにはどうすればよいですか?

4

1 に答える 1

0

はい、REG ADD既存の値を上書きしますが、役立つスクリプトを作成しました。

の後の文字に注意してくださいdelims=: これらはスペースではなく、単一のタブ文字 (ASCII #9) です。

@ECHO OFF
REM Declare all variables as local.
SETLOCAL

SET GET_PATH=REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path
SET SET_PATH=REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d

REM Get %PATH% from registry and filter REG output (drop all but actual %PATH% value).
FOR /F "tokens=3* delims=   " %%P IN ('%GET_PATH% ^| FINDSTR Path') DO SET RESULT=%%P

REM Check for the trailing semicolon.
IF "%RESULT:~-1%" == ";" (SET SEMICOLON=) ELSE (SET SEMICOLON=;)

REM Add new directories to %PATH%. 
SET DIRS=C:\Foo\Bar;E:\Bar\Baz
SET RESULT=%RESULT%%SEMICOLON%%DIRS%

REM Save result to the registry.
%SET_PATH% "%RESULT%"
于 2012-11-22T01:45:44.673 に答える