こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Win2000のシステム環境変数Path

バッチファイル上で
reg.exeで新たにパスを追加したいんですが、
overwrite(Y/N?)と聞かれて止まります。

止まらずにいくには、どう書いたら良いでしょうか?
教えて下さい。

[コマンド]
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %Path%;任意のパス /f

投稿日時 - 2005-05-15 20:38:11

QNo.1389558

すぐに回答ほしいです

質問者が選んだベストアンサー

>元々Pathに設定されていた""で囲んであったパスが追加後には解除されるという事態に・・・。
>
>パスに半角スペースが入ってるんでちょっと困りますね。。

/fオプションが利かなかった原因&""で囲んであったパスが追加後解除される原因は、%Path%がコマンドライン上で展開された時に、""で囲まれた部分の最初の"以降が、regコマンドのパラメータとして、正常に解釈されなくなることにあると思われます。(正常に解釈されていれば、/fオプションが利くはず)

環境変数Pathは、半角スペースを含むパスでも、""で囲まずに指定することが出来ますから(というより、""で囲まれていると、返って不具合が起きそう)、思い切って""を削除してしまえば良いと思います。
(↓が私のPathの設定ですが、見ての通り、""で囲まれてはいませんし、"C:\Program Files\Executive Software\Diskeeper"フォルダにある、"diskeeper.exe"をフルパスで指定しなくても起動できますから)

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Executive Software\Diskeeper

ただし、regコマンドのパラメータに半角スペースを含む文字列を指定する時には、""で囲む必要があります。(""で囲まないと、パラメータが多すぎるというエラーメッセージが表示されますし、Pathに最初から""が含まれていると、それ以降が正常に解釈されなくなります。)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%Path%;C:\Program Files" /f

投稿日時 - 2005-05-16 03:35:29

お礼

返事が遅くなりました。

非常に分かりやすい表現で有難うございます!
とてもよく理解できました。

Pathに""が付いていたのは、Sy○antecのソフトだったんですが・・・、どうしたもんでしょうね。。。

なんとか頑張ってみます。

投稿日時 - 2005-05-19 02:42:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

/fオプション付けても、上書き確認が出ちゃうってことですョね?

/fオプションの位置を変えてみるか、

"y"一文字を書き込んだテキストファイル(例えば、"yes.txt")を用意して、下記のようにコマンドの最後に" < yes.txt"を書き加えて、コンソール入力をテキストファイルからリダイレクトする。

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %Path%;任意のパス /f < yes.txt

投稿日時 - 2005-05-15 22:57:55

お礼

オプションの位置を変えてみることで、
上書き確認は出なくなりました。
テキストファイルからのリダイレクトというのも、使えそうですね。
気付きませんでした。

有難うございます。

が、元々Pathに設定されていた""で囲んであったパスが
追加後には解除されるという事態に・・・。

パスに半角スペースが入ってるんでちょっと困りますね。。

ひとまず、有難うございました。

投稿日時 - 2005-05-15 23:30:10

あなたにオススメの質問