2017-07-11 10 views
0

、私は%SVN_URL%をエコーし​​ようとしたとき、私は何も持っていないどのようにこれまでWindowsのCMDセット変数

SET SVN_URL   = http://server.test.com 
SET SVN_USER_NAME  = foo 
SET SVN_USER_PASSWORD = pass 

以下のようにSET文を合わせてみました。私は、変数名にスペースhttps://ss64.com/nt/set.html

を持っていることがわかっだから私の変数は、(スペースを含む)%SVN_URL %

が、それはそれを修正する方法ですでしょうか?!

+5

Ahm ...スペースを削除するのはどうですか? – aschipfl

+0

'set'コマンドを使うときは、本当に' = 'のまわりのスペースを避けたいと思っています。あなたの 'set'文を' set varname = value'として書式化し、読めるようにするためにコメント( 'rem'文)を追加してください。 –

+0

大文字の等号を整列させる必要がある場合には、var名の前に空白を入れても問題ありません;-) varnameやcontentの先頭や末尾の空白を避けるために、 'Set"を二重引用符で囲みます。SVN_URL = http: //server.test.com "' – LotPings

答えて

2

問題はスペースがこれは

SET   SVN_URL= http://server.test.com 
SET  SVN_USER_NAME= foo 
SET SVN_USER_PASSWORD= pass 

または

(各値は先頭にスペースが含まれていることに注目)自分の価値観を設定します set

両方脇に重要であるということです

for /f "tokens=1*delims== " %%a in (SVN_URL   = http://server.test.com) do set "%%a=%%b" 
for /f "tokens=1*delims== " %%a in (SET SVN_USER_NAME  = foo) do set "%%a=%%b" 
for /f "tokens=1*delims== " %%a in (SET SVN_USER_PASSWORD = pass) do set "%%a=%%b" 

または

call :setv SVN_URL   = http://server.test.com 
call :setv SVN_USER_NAME  = foo 
call :setv SVN_USER_PASSWORD = pass 

... 
:setv 
set "%~1=%~2" 
goto :eof 

この最後に、値を引用符で囲む必要があるかもしれないことに注意してください。

1

Magooの最初のバージョンと同じように、等号をあなたの聴覚に合ったものに合わせることができます。

SET   "SVN_URL=http://server.test.com" 
SET  "SVN_USER_NAME=foo" 
SET "SVN_USER_PASSWORD=pass" 

コメントで余分な空白が削除されているため、私は説明できませんでした。