0

非常基本,至少我是这么认为的。我在命令提示符中有这个字符串:

C:\>echo "start C:\Users\%USERNAME%\My Documents" >> Test.txt

我尝试了 %%USERNAME%%、'%USERNAME%'、'%'USERNAME'%' 和许多其他方法。批处理输出始终解析环境变量,而不是将其写为文本字符串。是否可以确保它将其读取为文本字符串而不是它解析的环境变量?

4

3 回答 3

2
echo start ^"^" ^"C:\Users\^%username^%\my documents^" >> test.txt

这应该有效。

于 2013-10-07T16:48:29.877 回答
2

此命令在命令行与批处理文件中的工作方式不同。在批处理文件中,这有效:

@echo off
echo start "" "C:\Users\%%username%%\my documents" >> file.txt
于 2013-10-07T21:57:39.893 回答
0

不知道为什么您的方法不起作用(我也无法使其起作用),但是如果您像这样分两部分进行回声:

echo.|set /P="start C:\Users\%" >> Test.txt
echo USERNAME%\My Documents >> Test.txt

然后它应该工作。第一行是我在这里找到的:'echo' without newline in a shell script

文档确实说 %% 应该放入文字 % ,但显然放置 %USERNAME% 的规则具有更高的优先级。

于 2013-10-07T16:12:32.390 回答