列出所有包含错误文件的 .zip 文件(批处理、cmd)

List all .zip files that contain an error file (batch, cmd)

我有一个包含一堆 zip 文件的文件夹,其中一些包含一个“*error.pdf”文件。我需要制作一个 "errors.txt" 文件,其中包含包含此类错误文件的 zip 文件的文件名。

我的病情需要帮助。如果找到字符串,FINDSTR 将 ERRORLEVEL 设置为 0,否则设置为 1。我试过 if not errorlevel 1if %ERRORLEVEL% == 0

for %%X in (*) do (
    "c:\Program Files-Zipz.exe" l "%%X" | findstr error > nul
    if errorlevel 0(
        ECHO "%%X" >> errors.txt
    )
)

现在没有任何反应(如果条件始终为假),如果我将 if 条件设置为始终为真,它会将所有文件名写入 errors.txt。

"c:\Program Files-Zipz.exe" l "%%X" | findstr error 确实输出 *error.pdfs

的文件名

问题是 if errorlevel 0( 之间缺少 space(感谢 aschipfl)。

如 Magoo

所述,if 语句的正确条件也是 if not errorlevel 1

这是工作代码(aschipfl 提到的改进)

for %%X in (*.zip) do (
    "c:\Program Files-Zipz.exe" l "%%X" | findstr error > nul
        if not errorlevel 1 (
        ECHO %%X >> errors.txt
        )
        )