2017-01-26 3 views
0

内部で動作していない私は、バットコマンドのこの奇妙な行動に遭遇しました:完全に罰金バット:設定するコマンドはカッコ

Set path=%path%;C:\Myfolder; 

作品を。私は、この内部に括弧を入れたときにしかし、それは奇妙な振る舞い:

if defined WINDIR (set path=%path%;C:\Myfolder) 
\NVIDIA was unexpected at this time. 

あるいは

(set path=%path%;C:\Myfolder) 
\NVIDIA was unexpected at this time. 

のでご注意下さい

C:\プログラムファイル(x86の)NVIDIAコーポレーション\ PhysXの\ \共通

は、パス環境変数の一部です。

ここで()を使用すると何が問題になりますか?

+7

_inside_は、あなたが引用符でパスの割り当てを囲む必要がありカッコ '(セット「パス=%パス%; C:\ Myfolder ")';そうでなければ、 '%path% 'の括弧がその行の中の1つを閉じます。そのため、次の部分はエラーをマークします。 – Aacini

+0

ありがとうAacini ..それは働いた。回答として投稿してください。私はそれをマークします.. –

答えて

0

setコマンドがカッコ内に置かれている場合、%path%拡張は、元のものを閉じる右かっこを置きます。それは、次のとおりです。%path%変数が2行目に展開されている

set path=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common 

(set path=%path%;C:\Myfolder) 

が、これが結果です:

(set path=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Myfolder) 
(x86)部分で右の括弧は、元の左の括弧を閉じていることをあなたが見ることができる

ので、行の次の部分はエラーの原因となる\NVIDIA Corporation\PhysX\Common;C:\Myfolder)です。

だけsetコマンドで引用符で値を囲み、このエラーを回避するには、次の行が配置されている場合

(set "path=%path%;C:\Myfolder") 
関連する問題