[Echo !file!|findstr] 中的管道错误

[Echo !file!|findstr] 中的管道错误

使用此脚本,我读取了带有文件名的日志文件并在这些列表中搜索字符串(带有通配符),但 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!
)

我收到错误: 完成此过程后,您将无法编写最好的 Pipe。

翻译:某个进程尝试写入不存在的管道

命令行中测试没问题

我希望存在语法错误或缺少选项?

答案1

我知道的获取该消息的唯一方法是,如果管道的右侧(findstr)在左侧(echo)完成写入标准输出之前关闭。

我不知道这怎么可能,除非没有执行正确的命令。确保当前文件夹或 PATH 中findstr没有任何类似内容。findstr.bat

避免此类问题(或确认这是问题)的一种方法是提供 FINDSTR 的完整路径。

echo !file!|"%windir%\system32\findstr.exe" ".*_DE.pdf"

如果上述更改解决了问题,那么您一定在某处有一个恶意的 FINDSTR 可执行文件。

相关内容