设置这样的变量时:
> set foo=hello && echo test
那么变量 foo 的值包含一个额外的不需要的空格:
> echo "%foo%"
"hello "
我该如何避免这个额外的空间?当我省略该&& echo test
部分时它会消失,但我需要&&
出于其他原因使用它。
答案1
set foo=hello&& echo test
在这里工作正常,
echo "%foo%"
印刷
"hello"
:)
答案2
你可以这样做
set "foo=hello" && echo test
答案3
正如其他答案所指出的,命令末尾的空格set
很重要,因此如果您输入
设置 foo=hello & echo 测试甚至
设置 foo=hello␣
(其中␣
代表空格),
%foo%
设置为六个字符的字符串h
, e
, l
, l
, o
,
。
我在将字符串输入到输出文件时也遇到了类似的空格问题echo
。毫不奇怪(鉴于上述情况),
echo hello >myfile
将六个字符串h
, e
, l
, l
, o
,
(加上 CR 和 LF)写入文件,而
echo hello> myfile
不包括空格。但命令行末尾的空格仍然是一个问题。如果出于某种原因,你说
echo hello> myfile␣然后输出末尾会出现一个空格。当我删除文件名后的空格时,输出末尾的空格就消失了。
很奇怪,但这对我有用。
答案4
set "foo=hello"
这对我在这方面有很大帮助
FOR /f "tokens=2 delims=><" %%a IN ('TYPE %GCV_CONFIG_FILE% ^| FIND "<%GCV_VALUE_NAME%>"') DO SET "%GCV_VARIABLE_NAME%=%%a" && echo %GCV_VARIABLE_NAME%=%%a >> %SessionLOG%
我花了一段时间才弄清楚如何删除变量末尾的空格。希望这对某些人有帮助