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