批处理文件删除zip文件以外的文件和文件夹

时间:2013-04-02 05:38:08

标签: batch-file

我创建了一个解压缩所有文件的批处理文件

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

REM
REM Remove the double quotes from the front and end of the root path
REM
SET ROOT=%1
SET ROOT=%ROOT:~1%
SET ROOT=%ROOT:~0,-1%
ECHO %ROOT%

REM Searching directory structure from root for subfolders and zipfiles,
REM then extracting the zipfiles into a subfolder of the same name as the zipfile.

FOR /F "delims==" %%d IN ('dir /ogne /ad /b /s "%ROOT%"') DO (
ECHO Extracting : "%%d"

FOR /F "delims==" %%f IN ('dir /b "%%d\*.zip"') DO (
        REM Getting filename without extension.
        SET subfolder=%%~nf
        ECHO mkdir "%%d\!subfolder!"
    mkdir "%%d\!subfolder!"
        REM Extracting zipfile content to the newly created folder.
        ECHO 7z x "%%d\%%f" -o "%%d\!subfolder!"
    "C:\Program Files\7-Zip\7z.exe" x "%%d\%%f" -o"%%d\!subfolder!"
)
)

ENDLOCAL

现在我要删除已创建的文件。

任何人都可以帮助删除单独的解压缩文件而不是删除压缩文件,并且还应该注意它不应该删除根文件和zip文件。

也欢迎任何其他解决方案。

我只想在文件夹中输入zip文件。所有其他文件都可以在没有用户说Y / N的情况下删除。

1 个答案:

答案 0 :(得分:0)

如果输出正常,请尝试此操作并删除echo

for /r "%root%" %%i in (*.zip) do (
    echo del /f /q "%%~dpni\*.*"
    echo rd /q "%%~dpni"
)