我正在尝试将批处理变量保存到文本文件中。我目前有以下代码:
@echo off
Set var=6
@echo %var%>txt.txt
For /f "tokens*" %%i in (txt.txt) do @echo %%i
Pause
这段代码应该会将数字6保存在变量var中,然后将这个变量写入到文本文件中。我想要这么做是为了将用户输入保存到文本文件中,以便在批处理程序终止时保留这些变量。
我正在尝试将批处理变量保存到文本文件中。我目前有以下代码:
@echo off
Set var=6
@echo %var%>txt.txt
For /f "tokens*" %%i in (txt.txt) do @echo %%i
Pause
这段代码应该会将数字6保存在变量var中,然后将这个变量写入到文本文件中。我想要这么做是为了将用户输入保存到文本文件中,以便在批处理程序终止时保留这些变量。
重定向存在一个小问题。您正在重定向“流”,它们的编号为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
set /p var=<filename
使用echo命令将内容输出到文件中:
@echo Contents Of File > "FileName"
要在文件末尾添加另一行,请使用以下命令:
@echo Contents Of File >> "FileName"
echo 6 1> txt.txt
或者@echo %var% 1>txt.txt
(在原始示例中)。验证输出的另一种方法是:type txt.txt
。 - Johan(echo 6)>txt.txt
或(echo %var%)>txt.txt
。 - Stephan