プロが教える店舗&オフィスのセキュリティ対策術

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

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

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

A 回答 (2件)

>元々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
    • good
    • 0
この回答へのお礼

返事が遅くなりました。

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

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

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

お礼日時:2005/05/19 02:42

/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
    • good
    • 0
この回答へのお礼

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

有難うございます。

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

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

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

お礼日時:2005/05/15 23:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!