我正在尝试将批处理变量保存到文本文件中。我目前有这个代码:
@echo off
Set var=6
@echo %var%>txt.txt
For /f "tokens*" %%i in (txt.txt) do @echo %%i
Pause
它应该将6保存到变量var中,然后将变量写入文本文件中。我想这样做是为了将用户输入保存到文本文件中,这样当批处理程序终止时它将保存变量。
答案 0 :(得分:8)
重定向有点问题。您正在重定向"流&#34 ;;它们编号为0-9。 0代表"标准输入" (STDIN),1代表"标准输出" (STDOUT),2表示"错误输出" (STDERR)。
如果您使用没有流号码的重定向符号>
,则默认为" 1"。
所以echo text>txt.txt
只是echo text 1>txt.txt
现在它变得棘手:echo 6>txt.txt
赢得了回声" 6"到文件,但尝试重定向"流6" (该文件为空)。标准输出echo is off
进入屏幕,因为" Stream1"没有重定向。
解决方案:
如果您尝试重定向以数字结尾的数字或字符串,只需使用不同的语法:
>txt.txt echo 6
答案 1 :(得分:1)
使用set命令获取文件的内容:
set /p var=<filename
使用echo命令放入文件:
@echo Contents Of File > "FileName"
要将另一行附加到文件末尾,请使用:
@echo Contents Of File >> "FileName"
此外,将命令放在单独的行上或使用'&amp;&amp;'他们之间在同一条线上。