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)-无论参数是否实际被引用。