解压多个子文件夹中的多个文件

解压多个子文件夹中的多个文件

我有一堆压缩文件(.rar,.zip),分散在多个子文件夹中,但都位于同一个基本文件夹(F:\1)中。

我想知道是否有一种方法可以解压缩每个文件,同时仍保留其原始名称(压缩文件 .zip 将变成 F:\1\zipped 文件)。

如果可能的话,删除原始 zip 文件,只保留解压后的文件夹。

有没有办法使用批处理文件来执行此操作,这样我就不必一次执行每个文件夹?

多谢你们 :)

答案1

你的问题很模糊。档案通常包含多个文件,并且可能包含子文件夹。如果你想创建一个folder与档案同名(不带扩展名)的文件夹,并将所有档案内容存储在其中,这是一个起点。

:: Expand-Archive.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::::
@Echo off&SetLocal EnableExtensions
Set Base=F:\1
if exist "%~1" Set "Base=%~f1"
Pushd %Base% ||(Echo Can't cd to base folder %base% &Pause&Exit)
For /f "delims=" %%A in ('Dir /B/S/A-D *.zip *.rar') Do Call :Expand "%%A"
PopD
Goto :Eof

:Expand
Set "_Folder=%~dp1"
PushD "%_Folder%"
Set "_Archive=%~nx1"
Set "_NewSubFolder=%~dpn1"
:: Your own code to expand the Archive goes here.
:: I don't know what tool (7zip Infozip etc.) you usually use.
::
:: with 7z somewhere in your path this might work,
:: remove Echo in the following 2 Lines.
Echo MkDir  "%_NewSubFolder%"
Echo 7z x -O"%_NewSubFolder%" "%_Archive%" && Del "%_Archive%"
PopD
Goto :Eof
:: Expand-Archive.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::::

高血压

相关内容