批处理脚本 - 将变量的所有内容写入文件

时间:2015-04-14 06:05:44

标签: batch-file automation

将变量的内容加载到文本文件中。

Echo %var% > Temp.txt

上面的代码工作正常,但是如果变量中定义了两行,它会打印终端中的第一行并将第二行打印到文本文件中。 有没有办法将变量的所有内容写入文本文件? 例如:

var:

 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

4 个答案:

答案 0 :(得分:4)

只需使用

( 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

答案 1 :(得分:2)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (123 234) DO (
        IF NOT "!var!"=="" SET "var=!var! && Echo."
        SET "var=!var!%%A"
)
ECHO %var%
echo========================
Echo %var% >> u:\Temp.txt
ECHO =======================
(Echo %var% )>> u:\Temp2.txt
ECHO =======================
SET var

GOTO :EOF

也许这会让你了解正在发生的事情。

解决方案是(Echo %var% )>> u:\Temp2.txt

>>可以>重新创建而不是追加。

U:是我的RAMdrive

答案 2 :(得分:0)

尝试将数据写入excel文件

awk'BEGIN {OFS =“|”; print“Column1 | Column2 | Column3 | Column4 | Column5 | Column6”};          NR> 1 {print“IND”,“INR”,$ 6,$ 7,$ 8,$ 9;}'Inputdata.txt> Output.xls

答案 3 :(得分:0)

setlocal enabledelayedexpansion
>temp.txt echo !var!
endlocal

变量中包含换行符或回车符的特殊字符需要延迟扩展才能正确处理。