运行代码时,会输出FIND: Parameter format not correct
和The process tried to write to a nonexistent pipe.
。由此,我非常确定for循环不能处理管道和/或重定向。我不确定该怎么做,我已经尝试在循环外运行它,并且工作正常,但在循环内它会丢弃假人。有谁知道为什么,或者我如何解决这个问题?
@ECHO OFF
setlocal enabledelayedexpansion
for /F "tokens=*" %%a in (set_1.txt) do (
type set_2.txt | find %%a > nul
if !errorlevel! EQU 1 (
echo %%a
)
)
endlocal
pause
在有人说出来之前,我知道这不是在文件中查找字符串的最有效方法,但对于我处理的文件大小并不重要。
答案 0 :(得分:4)
type someFile | find word
完全失败,因为find需要引号中的“单词”。
因此,解决方案是将您的行更改为
type set_2.txt | find "%%a" > nul
if !errorlevel! EQU 0 (
....
甚至更简单
type set_2.txt | find "%%a" > nul || echo %%a not found