Windows CMD使用变量名称的空格设置变量

时间:2017-07-11 12:24:10

标签: batch-file cmd environment-variables

为了使我的批处理文件可读,我尝试将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 %(带空格)

有没有办法解决它?!

2 个答案:

答案 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"

在评论中删除了过多的空格,因此我无法证明。