将变量重定向到文本文件时出现额外空间的问题

时间:2014-02-20 05:01:26

标签: batch-file

当我运行以下行时:

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"

但是空间破坏了路径,因此呼叫命令不起作用。有谁知道如何解决这个问题,(阻止它在最后创建空间)?

2 个答案:

答案 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 "还可以防止长文件名元素(如空格)以及&字符。