我有下面的命令,它应该循环遍历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变量时出现问题。当我试图回应变量时,我什么都没得到。
答案 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!
)