非常基本,或者我认为。我在命令提示符下有这个字符串:
C:\>echo "start C:\Users\%USERNAME%\My Documents" >> Test.txt
我尝试了%% USERNAME %%,'%USERNAME%','%'USERNAME'%'以及许多其他方法。批输出始终解析环境变量,而不是将其写为文本字符串。是否有可能确保将其读作文本字符串而不是它解析为的环境变量?
答案 0 :(得分:2)
echo start ^"^" ^"C:\Users\^%username^%\my documents^" >> test.txt
这应该有效。
答案 1 :(得分:2)
此命令在命令行与批处理文件的工作方式不同。在批处理文件中,这有效:
@echo off
echo start "" "C:\Users\%%username%%\my documents" >> file.txt
答案 2 :(得分:0)
不知道为什么你的方法不起作用(我也无法使它工作),但如果你用这样的两个部分做回声:
echo.|set /P="start C:\Users\%" >> Test.txt
echo USERNAME%\My Documents >> Test.txt
然后它应该工作。第一行是我在这里找到的:'echo' without newline in a shell script
文档确实说%%应该输入一个字面值,但显然放置%USERNAME%的规则具有更高的优先级。