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