Когда я запускаю код, он выводит 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
И прежде чем кто-нибудь говорит, что это, я знаю, что это не самый эффективный метод для поиска строк в файлах, но это не имеет значения для размеров файлов, я имею дело с.
Вы должны попробовать его в командной строке первого 'типа некий-файл | find word' просто терпит неудачу, так как 'find' требует' 'word" 'в кавычках – jeb
Зачем использовать здесь канал? почему бы просто не указать имя файла в качестве аргумента 'find', например' find '%% a "" set_2.txt "?? – aschipfl