使用此脚本,我读取了一个包含文件名的日志文件,并在这些列表中搜索一个字符串(使用通配符),但 findstr 函数的管道不起作用。
setlocal enabledelayedexpansion
for /f %%A in (./Log.txt) do (
set "file=%%A"
echo !file!
echo !file!|findstr ".*_DE.pdf"
IF %ERRORLEVEL%==1 echo "gefunden"!file!
)
我收到错误消息: Ein Prozess hat versucht, zu einer nicht bestehenden Pipe zu schreiben。
翻译:一个进程试图写入一个不存在的管道
在命令行中测试没问题
我希望是语法错误还是缺少选项?
我知道获得该消息的唯一方法是,如果管道 (
findstr
) 的右侧在左侧 (echo
) 完成写入标准输出之前关闭。findstr
除非没有执行正确的命令,否则我看不出这是怎么可能的。findstr.bat
确保在当前文件夹或 PATH 中没有任何类似内容。避免此类问题(或确认这是问题所在)的一种方法是提供 FINDSTR 的完整路径。
如果上面的更改解决了问题,那么您一定在某处有一个流氓 FINDSTR 可执行文件。