将批处理变量保存在文本文件中

时间:2015-01-25 03:56:25

标签: variables batch-file save io-redirection

我正在尝试将批处理变量保存到文本文件中。我目前有这个代码:

@echo off

Set var=6
@echo %var%>txt.txt

For /f "tokens*" %%i in (txt.txt) do @echo %%i
Pause

它应该将6保存到变量var中,然后将变量写入文本文件中。我想这样做是为了将用户输入保存到文本文件中,这样当批处理程序终止时它将保存变量。

2 个答案:

答案 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;'他们之间在同一条线上。