当我运行以下行时:
set "Loc=%~dp0"
echo %Loc% > C:\PLACE\LOCFILE.txt
我在LOCFILE中收到以下内容:
C:\BATCHLOC
^
Note Space
我正在尝试在单独的批处理文件中使用%Loc%:
(
set /p Loc=
)<C:\PLACE\LOCFILE.txt
)
call "%Loc%\FILENAME.bat"
但是空间破坏了路径,因此呼叫命令不起作用。有谁知道如何解决这个问题,(阻止它在最后创建空间)?
答案 0 :(得分:3)
echo %Loc% > C:\PLACE\LOCFILE.txt
↑
This space is written to the file.
修正:
echo %Loc%> C:\PLACE\LOCFILE.txt
答案 1 :(得分:3)
这更加强大。
>"C:\PLACE\LOCFILE.txt" echo(%Loc%
启动时的重定向会阻止%loc%
中的3,4,5这样的数字在重定向直接结束时破坏代码(如下所示)。
使用下面的技术时,test 2
中%loc%
之类的构造也会失败。
这是因为末尾的单个数字数字被解释为流指示符,所以当直接放在重定向字符(>
或>>
)之前,数字0到9都是问题。
请勿使用此<:strong> echo %Loc%> C:\PLACE\LOCFILE.txt
额外提示:
echo(
可以防止echo命令中的其他失败,并且(
字符在以这种方式使用时已被测试为问题最少的字符。
"
驱动器周围的双引号:\ path \ filename "
还可以防止长文件名元素(如空格)以及&
字符。