如何提取此文件夹子目录中的所有档案?

如何提取此文件夹子目录中的所有档案?

我研究了这个标题,并给出了以下CMD文件的答案:

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
           FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x %%X
           )
    popd
)

cmd 文件在某种程度上运行良好。但它对每个以“ZIP”为扩展名的文件都给出以下消息并询问:

Would you like to replace the existing file:
Path xxxxxx
Size xxxx
Modified: XXXXXXX
with the file from the archive:
Path: xxxx
Size: xxxxx
? Y<es> \ N<o> \ A<lways> \ S<kip all> \A<u>to rename all \ <Q>uit 

它停在那里等待输入。但每次解压文件时它都会询问。我打算修改上面的命令文件,用一些检查是否?找到的内容,然后调用响应 cmd 文件,该文件输出“Y”然后退出,这将带我回到原始命令文件,用它找到的“zip”处理下一个文件。

我不知道我是否走在正确的轨道上,但我希望得到一些帮助。我不知道哪个程序正在输出?和文本。是 Windows 7 还是 7-zip 在询问?

答案1

我不知道哪个程序输出了“?”和文本

这是7z.exe

正确的开关用法是-aoa(不提示的情况下覆盖所有现有文件。)

例子:

"C:\Program Files\7-zip\7z.exe" x %%X -aoa

-ao(覆盖模式)开关

指定提取期间的覆盖模式,以覆盖磁盘上已存在的文件。

Syntax

-ao[a | s | t | u ]

Switch    Description
-aoa  Overwrite All existing files without prompt.
-aos  Skip extracting of existing files.
-aou  aUto rename extracting file (for example, name.txt will be renamed to name_1.txt).
-aot  auto rename existing file (for example, name.txt will be renamed to name_1.txt).

来源-ao(覆盖模式)开关

答案2

产生提示的是 7-zip。它看起来像-y转变for7z.exe做你想做的事:

所有覆盖查询都将被抑制,并且磁盘上与存档中具有相同文件名的文件将被覆盖。

文档的示例表明您应该将其放置-y在给定的路径之后7z.exe

相关内容