首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批量提取和删除档案,如何删除.part*.rar

批量提取和删除档案,如何删除.part*.rar
EN

Stack Overflow用户
提问于 2017-11-23 09:25:45
回答 2查看 892关注 0票数 0

我一直在使用这个脚本来提取和删除档案,但是由于某些原因,它没有正确地处理名为.part##.rar的档案。我做错了什么?

代码语言:javascript
运行
复制
for /r %%r in (*.zip *.7z *.rar *.ace) do 7z x -y "%%r" >nul && del "%%r" && echo unpacked "%%~nxr"

编辑:我决定将其构建到一个单独的脚本中,该脚本处理单个文件夹%1中的所有档案。

代码语言:javascript
运行
复制
:security
cd /d "%~1" || echo no valid directory defined && exit /b
attrib -s -h *.* >nul
dir *.rar *.zip *.7z *.ace >nul 2>nul || exit /b

:extract
for %%r in (*.zip.001 *.7z.001 *.tar.001) do (
    7z x -y "%%r" >nul && recycle -f "%%r" && echo unpacked "%%~nxr"
    if exist "%%r" echo unpack failed, maybe the disk is full? && exit /b
    recycle -f "%%~dpn.???" && echo multipart archives "%%~dpn.???" recycled
)

for %%r in (*.part1.rar *.part01.rar *.part001.rar) do (
    7z x -y "%%r" >nul && recycle -f "%%r" && echo unpacked "%%~nxr"
    if exist "%%r" echo unpack failed, maybe the disk is full? && exit /b
    rem need a way to delete multipart volumes here
)

for %%r in (*.rar *.zip *.7z *.ace *.tar) do (
    7z x -y "%%r" >nul && recycle -f "%%r" && echo unpacked "%%~nxr"
    if exist "%%r" echo unpack failed, maybe the disk is full? && exit /b
    if /i "%%~xr"==".rar" if exist "%%~dpnr.r00" recycle -f "%%~dpnr.r??" && echo multipart archives "%%~dpn.r??" recycled
)

goto security

我需要帮助删除中间堆栈中的剩余文件。

EN

Stack Overflow用户

发布于 2017-11-23 12:15:05

这将尝试使用正则表达式尽可能将异常缩小到所使用的模式:

代码语言:javascript
运行
复制
for /F %%f in ('dir /b /a-d *.zip *.7z *.rar *.ace ^|findstr /REIV /C:"\.part[0-9][0-9]*\.rar"') do @(7z x -y "%%f" >nul && del "%%f" && echo unpacked "%%~nxf")
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47451815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档