请向解压缩文件说明此批处理文件命令


for /r %%I IN (' *.zip ') DO (
"C:Program Files7-Zip7z.exe" x -o"%%~dpnI" "%%I"
)
pause

嗨,我在网上获得了该批处理命令,该命令递归地解开文件。我想了解在这种情况下为for循环做什么。

我问这个问题,因为运行BAT文件时会收到错误,因为该命令还选择了其他扩展程序的文件夹和文件,除了A *.zip并抛出以下错误。

D:Unzip_foldersNew folder>("C:Program Files7-Zip7z.exe" x -o"D:Unzip_foldersNew folder23Nov2015error_log.17112015'" "D:Unzip_foldersNew folder23Nov2015error_log.17112015'" )
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
Scanning the drive for archives:
ERROR: The system cannot find the file specified.
D:Unzip_foldersNew folder23Nov2015error_log.17112015'

如果您分析了错误消息,则在每个文件名的末尾注意到一个'。那是因为您使用了错误的报价。

完全跳过:

for /r %%I IN (*.zip) DO (

或使用双重引用:

for /r %%I IN ("*.zip") DO (
for /r %%I IN (*.zip) DO (
"C:Program Files7-Zip7z.exe" x -o"%%~dpnI" "%%I"
)
pause

您的代码不正确。这是适当的。

最新更新