batch file - How to unpack all rar archives in all subfolders of a folder and then delete the archives? -
i want unpack files in subfolders in main folder, delete xxx.rar files after unpacking , move folder files location.
- main folder
- sub folder1 (with .rar files)
- sub folder2 (with .rar files)
- sub folder3 (with .rar files)
this batch script , works far.
set "sourcefolder=c:\users\unpack" /r %sourcefolder% %%x in (*.rar) ( pushd "%%~dpx" "c:\program files\winrar\rar.exe" x -y "%%x" "*.*" && del "*.rar" popd ) /d /r %sourcefolder% %%x in (*) move "%%x" "c:\users\new-location") but want every subfolder files unpacked moved "new-location" folder , not after has been unpacked in main folder.
some ideas have change in code?
this little batch code want.
@echo off set "sourcefolder=c:\users\unpack" set "targetfolder=c:\users\new-location" if not exist "%targetfolder%" md "%targetfolder%" "%programfiles%\winrar\rar.exe" x -ad -cfg- -idq -r -y "%sourcefolder%\*.rar" "%targetfolder%" del /f /q /s "%sourcefolder%\*.rar">nul /d %%d in ("%sourcefolder%\*") rd "%%d" 2>nul console version rar.exe more powerful users never reading manual rar.txt stored in program files folder of winrar aware of.
unpacking *.rar files in subfolders of source folder can done directly rar.exe can seen because no for loop used in batch code. rar.exe supports wildcards on decompressing rar archive files , switch -r used on command x results in processing rar archive files in subfolders manual explains.
option -ad meaning append archive name destination path removed rar command line if archives contain unique folder name, or archives should unpacked same directory overwriting existing files previous archive unpacked before. usage of -ad depends on contents of archive files.
option -idq means quiet mode, i.e. output error messages, no progress information faster.
the deletion of *.rar files after unpacking them done without for loop command del supports deletion of *.rar files in subfolders of folder.
edit:
for deletion of subfolders in source folder being empty after deleting rar files, keeping source folder, for loop necessary added code above.
subfolders not being empty ignored command rd because parameters /s /q not used delete subfolder if not empty.
the error message of rd output stderr if subfolder remove not empty redirected device nul suppress it.
to delete subfolders of source folder independent on subfolders contain after unpacking rar archives, keep source folder, last 2 lines of batch code above need replaced following line:
for /d %%d in ("%sourcefolder%\*") rd /s /q "%%d" 2>nul and deleting source folder subfolders, last 2 lines of batch code above need replaced following line:
rd /s /q "%sourcefolder%" 2>nul note: folder can removed rd if not current working directory running process on windows.
help each command used in batch file can read opening command prompt window , run there:
del /?for /?if /?md /?rd /?set /?"%programfiles%\winrar\rar.exe" /?
Comments
Post a Comment