使用批处理脚本将可执行文件的结果存储在变量中

时间:2014-01-16 18:19:18

标签: batch-file

我有下面的命令,它应该循环遍历filelist.txt中的每一行,将可执行文件的结果存储在temp.txt中,然后将IDCH设置为temp.txt中的单行

for /F "tokens=*" %%A in (d:\fetchdoc\filelist.txt) do (
    D:\fetchdoc\filehdr.exe %%A 3 > temp.txt
    set /p IDCH=<temp.txt
    echo %IDCH%
    del temp.txt
)

这是我在回显的每个循环中得到的回复:

D:\fetchdoc\images\export>(
D:\fetchdoc\filehdr.exe 142120_1 3  1>temp.txt
set /p IDCH= 0<temp.txt
echo
del temp.txt
)
ECHO is on.

由于某种原因,尝试设置IDCH变量时出现问题。当我试图回应变量时,我什么都没得到。

1 个答案:

答案 0 :(得分:1)

您可以避免使用临时文件,将二进制执行的结果直接存储在变量中:

@echo off
setlocal enabledelayedexpansion

for /F "tokens=*" %%A in (d:\fetchdoc\filelist.txt) do (
    for /F "delims=" %%x in ('D:\fetchdoc\filehdr.exe "%%A" 3') do set IDCH=%%x
    echo !IDCH!
)