为了使我的批处理文件可读,我尝试将SET
语句对齐如下
SET SVN_URL = http://server.test.com
SET SVN_USER_NAME = foo
SET SVN_USER_PASSWORD = pass
当我试图回应%SVN_URL%
时,我一无所获。我发现变量名可以有空格https://ss64.com/nt/set.html
所以我的变量将是%SVN_URL %
(带空格)
有没有办法解决它?!
答案 0 :(得分:2)
问题是空格在set
这将设置您的值(注意每个值将包含一个前导空格)
SET SVN_URL= http://server.test.com
SET SVN_USER_NAME= foo
SET SVN_USER_PASSWORD= pass
或
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 :(得分:1)
与Magoo的第一个版本类似,您可以调整等号以适合您的aestetics或其他任何内容。
SET "SVN_URL=http://server.test.com"
SET "SVN_USER_NAME=foo"
SET "SVN_USER_PASSWORD=pass"
在评论中删除了过多的空格,因此我无法证明。