列出所有包含错误文件的 .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 1
和 if %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
)
)
我有一个包含一堆 zip 文件的文件夹,其中一些包含一个“*error.pdf”文件。我需要制作一个 "errors.txt" 文件,其中包含包含此类错误文件的 zip 文件的文件名。
我的病情需要帮助。如果找到字符串,FINDSTR 将 ERRORLEVEL 设置为 0,否则设置为 1。我试过 if not errorlevel 1
和 if %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
)
)