列出所有包含错误文件(batch,cmd)的.zip文件

时间:2019-06-06 11:45:07

标签: batch-file findstr errorlevel

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

我需要有关情况的帮助。如果找到该字符串,则FINDSTR将ERRORLEVEL设置为0,否则将其设置为1。我已经尝试过if not errorlevel 1if %ERRORLEVEL% == 0

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

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

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

的文件名

1 个答案:

答案 0 :(得分:0)

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

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

这是工作代码(aschipfl提到了一些改进)

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