Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file batch file可删除除zip文件以外的文件和文件夹_Batch File - Fatal编程技术网

Batch file batch file可删除除zip文件以外的文件和文件夹

Batch file batch file可删除除zip文件以外的文件和文件夹,batch-file,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 r

我已经创建了一个批处理文件,可以解压所有文件

@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文件。用户无需回答“是/否”,即可删除所有其他文件。

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

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

我建议,
del
行可能是多余的,
rd/q
应该是
rd/s/q
我得到“的完整路径太长了。”实际上我对批处理文件的编写一无所知,我只知道使用它,…)因此,请帮助编写完整的代码,而不是代码片段:)
SET ROOT=%~1
应将
ROOT
设置为dequoted(参数1)-无论参数是否实际被引用。