我的批处理程序
另外,即使使用@echo off,上述命令也会将findstr命令打印到控制台。是否有任何方法可以禁用该打印?
非常感谢。
我的脚本部分内容是,在源文件的每一行上运行命令并将运行结果放入临时文件中,然后使用find str查找失败的字符串以检查运行结果。
FINDSTR /C:"Result Comparison failure" %tmp_result_file%
我想要做以下事情,将上述命令的结果设置为变量。如果找到了,则将第一行设置为变量或将所有找到的行设置为变量都可以。另外,即使使用@echo off,上述命令也会将findstr命令打印到控制台。是否有任何方法可以禁用该打印?
非常感谢。
我的脚本部分内容是,在源文件的每一行上运行命令并将运行结果放入临时文件中,然后使用find str查找失败的字符串以检查运行结果。
for /f %%a in (%source_file%) do (
echo run %%a >> %output_file%
call %run_script_command% %%a > %tmp_result_file% 2>&1
::notepad %tmp_result_file%
for /f %%i in ('FINDSTR /C:"Result Comparison failure" %tmp_result_file%') do echo %%ixxx
echo xx
)
非常奇怪,结果是:
xx Resultxxx xx
背景是我在%source_file%
中有两个项目,因此运行了两次。
对于第一个项目,FINDSTR 找不到任何东西,所以打印出 xxx
对于第二个项目,它在 findstr 中找到了一个,但只打印了 "Result
" 而不是 "Result Comparison failure
",而且在结果中的 xx 在它之前打印。非常奇怪!
%%i
的值呢?像这样(在内部循环体中):IF "%%i" == "" (ECHO xx) ELSE ECHO %%i
。 - Andriy Mfor /F
命令中存在语法错误"tokens= *"
在此时是意外的。应该将"tokens= *"
放在%%i
之前。 - zhenguoli