PDA

Показать полную графическую версию : [решено] 7zip Извлечь архивы из каталога и удалить


bomiva
26-01-2022, 07:00
Привет всем, на страницах форума нашел данный скрипт от пользователя Iska. Возникает проблема с распаковкой архивов 7zip, пытался исправить самостоятельно , но все попытки потерпели неудачу. Помогите модифицировать этот скрипт чтобы распаковывал rar, zip и 7z . Можно через winrar или 7zip. Заранее спасибо!



@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=E:\Песочница\0133\Source
set sDestFolder=E:\Песочница\0133\Destination

if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
for %%i in ("%sSourceFolder%\*.rar" "%sSourceFolder%\*.zip") do (
<nul set /p sValue=%%i
"C:\Program Files\WinRAR\WinRAR.exe" x -y "%%i" "%sDestFolder%\" && (
<nul set /p sValue=Ok
del /f /q "%%i" && echo Deleted|| echo.
) || echo Error
)
) else (
echo Destination folder [%sDestFolder%] not found
)
) else (
echo Source folder [%sSourceFolder%] not found
)

endlocal
exit /b 0

DJ Mogarych
26-01-2022, 09:56
Powershell:


$src = "D:\temp\arch"
$dest = "D:\temp\extract"

dir "$src" -file |? extension -match "\.zip|\.rar|\.7z" |% {
$extract = & "C:\Program Files\7-Zip\7z.exe" x "$($_.fullname)" -o"$dest\$($_.basename)"
if ($extract -contains "Everything is Ok") {del "$($_.fullname)"}
}

megaloman
26-01-2022, 16:32
@Echo Off
cls
Set "BoxArc=Z:\Soft_Arc"
Set Mask="*.rar" "*.Zip" "*.7z"

Set "OutBox=Z:\Soft_Out"

Set Arc="C:\Program Files\7-Zip.21beta\7z.exe" x -y

Pushd "%BoxArc%"||(Echo !!! Folder "%BoxArc%" not found &Pause &Exit /B 2)
If Not Exist "%OutBox%" (Echo !!! Folder "%OutBox%" not found &Pause &Exit /B 2)

FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D %Mask%`) DO (
Echo "%BoxArc%\%%f"
>nul %Arc% "%BoxArc%\%%f" -o"%OutBox%\" &&(Del "%BoxArc%\%%f" &&Echo "%BoxArc%\%%f" deleted)
)

Popd
pause
Exit /B
Примечание: этот вариант кода не ломается от присутствия "!" в именах, например:
Set "BoxArc=Z:\!!! Soft_Arc !!!"
Set "OutBox=Z:\!!! Soft_Out !!!"




© OSzone.net 2001-2012