Batch file 批处理脚本-将变量的所有内容写入文件
将变量的内容加载到文本文件中Batch file 批处理脚本-将变量的所有内容写入文件,batch-file,automation,Batch File,Automation,将变量的内容加载到文本文件中 Echo %var% > Temp.txt 上面的代码工作正常,但如果变量中定义了两行,它将在终端中打印第一行,并将第二行打印到文本文件中。 有没有办法将变量的所有内容写入文本文件? 例如: 变量: 123 234 只有234被写入Temp.txt,但我希望123和234被写入Temp.txt,一个在另一个之下 还有,有没有办法从批处理脚本将数据加载到Excel文件中?如果是的话,我想要一些基本的例子 编辑: 变量var的定义如下: FOR /F "T
Echo %var% > Temp.txt
上面的代码工作正常,但如果变量中定义了两行,它将在终端中打印第一行,并将第二行打印到文本文件中。
有没有办法将变量的所有内容写入文本文件?
例如:
变量:
123
234
只有234被写入Temp.txt,但我希望123和234被写入Temp.txt,一个在另一个之下
还有,有没有办法从批处理脚本将数据加载到Excel文件中?如果是的话,我想要一些基本的例子
编辑:
变量var
的定义如下:
FOR /F "Tokens=1*" %%A IN ('REG QUERY "HKCU\....."') DO (
IF NOT "!var!"=="" SET "var=!var! && Echo."
SET "var=!var!%%A"
)
Echo %var% >> Temp.txt
尝试将数据写入excel文件 awk'BEGIN{OFS=“|”print”Column1 | Column2 | Column3 | Column4 | Column5 | Column6”}; NR>1{print“IND”、“INR”、$6、$7、$8、$9;}'Inputdata.txt>Output.xls
setlocal enabledelayedexpansion
>temp.txt echo !var!
endlocal
变量中包含的换行符或回车符等特殊字符需要延迟扩展才能正确处理。只需使用
( echo %var% ) > temp
但是您的变量不包含多行文本,它包含多条ECHO
指令
对于真正的多行文字,需要使用换行符
setlocal EnableDelayedExpansion
SET LF=^
REM Two empty lines are required
set "var="
FOR /F "Tokens=1*" %%A IN ('REG QUERY "HKCU\....."') DO (
IF defined var SET "var=!var!!LF!"
SET "var=!var!%%A"
)
Echo !var! >> Temp.txt
@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
对于%%A IN(123 234)DO(
如果不是“!var!”==”则设置“var=!var!&&Echo。”
设置“var=!var!%%A”
)
回显%var%
回音========================
回显%var%>>u:\Temp.txt
回音=======================
(回显%var%)>>u:\Temp2.txt
回音=======================
集合变量
后藤:EOF
也许这会让你了解正在发生的事情
解决方案是(Echo%var%)>>u:\Temp2.txt
其中>
可以是
,以重新创建而不是追加
U:
是我的RAMdrive您是如何找到环境变量中的行的?你能显示你的赋值吗?var
不是我用来存储数据行的实际变量名。我不知道var
是一个环境变量,比如%username%
和其他变量。实际上,我在循环中使用了&&Echo.
来定义变量以创建逐行输出。当我使用你的方法时,我得到如下输出:123&&Echo.234
@Lastwish,对不起,我不知道你在做什么。我认为变量包含两个值,它们之间有一个LF或CR,但似乎不是这样。您能在问题中包括您用来设置变量的代码吗?添加了用于变量定义的代码段var
@Lastwish,您需要将内容放入变量还是将数据放入文件的唯一要求?要先将内容存储到变量中,。。。由于还有其他类似的需求需要相同的功能,…Awk功能在Bat/批处理脚本中不存在,对吗?它说Awk不承认Di写的是完全相同的代码+1比我快:)傻瓜很少有不同