使用批处理文件和命令递归解压缩文件时出现多个错误

时间:2016-06-13 12:29:26

标签: batch-file command unzip

我在批处理文件中使用以下命令以递归方式将文件解压缩到名称与zip文件相同的文件夹中。

@echo off
for /R %%I IN (' dir /d /s *.zip ') DO (
    "C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpI\%%~nI" "%%I" 
)

enter image description here

我有一个zip文件,例如abc.zip,这个zip包含另一个zip,例如mns.zip。 因此,当我运行bat文件时,该命令正确解压缩所有文件。 也就是说,使用abc.zip的内容创建文件夹abc,并且在该文件夹中,mns.zip也被解压缩到文件夹。 按我的意愿工作。但是我在命令提示符下使用相同的消息会收到很多错误。我想避免这种情况并运行bat文件而不会出错。

enter image description here

此处再次出现错误:

  

系统错误:系统找不到指定的文件。

     

7-Zip [64] 16.02:Copyright(c)1999-2016 Igor Pavlov:2016-05-21

     

扫描驱动器以获取存档:

     

错误:文件名,目录名或卷标语法是   不正确。 D:\ Unzip_folders \ New folder \ 23Nov2015 \ error_log.17112015 \ d

请帮我解决这个问题..如何摆脱这些错误?

1 个答案:

答案 0 :(得分:0)

假设程序运行正常,您可以做的一件事就是抑制所有错误输出。

为此,您可以将> nul 2> nul附加到7zip命令。这会将所有警告和错误输出重定向到null。如果你只想重定向错误,只包括nul 2.请注意,这可能不是最佳解决方案,但如果你想要摆脱错误,这将有效