标题: [其他] 批处理怎样解压一个文件以后删除这个文件的压缩包? [打印本页]
作者: bluesky123 时间: 2023-11-28 19:18 标题: 批处理怎样解压一个文件以后删除这个文件的压缩包?
- @echo off
- chcp 65001
- set rar="C:\Program Files\WinRAR\WinRAR.exe"
- for /f "delims=" %%a in ('dir /a-d /s /b *.rar') do (
- %rar% x -y -pword "%%a" "%%~dpa" && (
- set #"%%a"=1
- )
- )
- for /f tokens^=2delims^=^" %%a in ('set #') do del "%%a"
- pause
复制代码
上述代码只能执行解压所有的文件后才能一次性删除所有压缩包,因磁盘空间不够,能不能改一下代码使得每解压一个文件以后删除这个文件的压缩包或者分卷压缩包
作者: ShowCode 时间: 2023-11-28 22:03
回复 1# bluesky123
试试这样- @echo off
- chcp 65001 >nul
- set rar="C:\Program Files\WinRAR\WinRAR.exe"
- for /f "delims=" %%a in ('dir /b /s /a-d *.rar') do (
- %rar% x -ibck -y -pword "%%a" "%%~dpa"
- if not errorlevel 1 (
- del /f /q "%%a"
- )
- )
- pause
复制代码
或者这样- @echo off
- chcp 65001 >nul
- set rar="C:\Program Files\WinRAR\WinRAR.exe"
- for /f "delims=" %%a in ('dir /b /s /a-d *.rar') do (
- %rar% x -ibck -y -pword "%%a" "%%~dpa" && del /f /q "%%a"
- )
- pause
复制代码
作者: Five66 时间: 2023-11-29 04:18
用真正的命令行程序rar.exe(好像仅支持rar格式)- @echo off
- chcp 65001
- set rar="C:\Program Files\WinRAR\Rar.exe"
- for /f "eol=/ delims=" %%a in ('dir /a-d /s /b *.rar') do (
- %rar% x -y -pword "%%a" "%%~dpa" && del "%%a"
- )
- pause
复制代码
作者: bluesky123 时间: 2023-11-29 09:41
回复 3# Five66 问题不支持分卷压缩包啊,只能删除part1.rar
作者: Batcher 时间: 2023-11-29 10:00
回复 1# bluesky123
请把你的WinRAR版本信息发出来看看
C:\>"C:\Program Files\WinRAR\rar.exe" | findstr /b "RAR"
RAR 6.24 x64 版权所有 (c) 1993-2023 Alexander Roshal 3 十月 2023
|
作者: bluesky123 时间: 2023-11-29 10:18
回复 bluesky123
请把你的WinRAR版本信息发出来看看
Batcher 发表于 2023-11-29 10:00
RAR 5.91 x64 版权所有 (C) 1993-2020 Alexander Roshal 25 六月 2020
作者: Batcher 时间: 2023-11-29 10:37
回复 6# bluesky123
建议先升级到最新版本试试
作者: 77七 时间: 2023-11-29 12:03
本帖最后由 77七 于 2023-11-29 12:04 编辑
code1- @echo off
- chcp 65001 >nul
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip ^|sort') do (
- set folder=%%~dpi
- set file=%%i
- setlocal enabledelayedexpansion
- "C:\Program Files\WinRAR\WinRAR.exe" x -y "!file!" "!folder!"
- if !errorlevel! equ 0 (
- del "!file!"
- ) else if !errorlevel! equ 6 (
- del "!file!"
- )
- endlocal
- )
- pause
复制代码
code2
- @echo off
- chcp 65001 >nul
- for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip ^|sort') do (
- if exist "%%i" (
- "C:\Program Files\WinRAR\WinRAR.exe" x -y "%%i" "%%~dpi" && (
- del "%%i"
- for /f "delims=" %%j in ("%%~ni") do (
- del "%%~dpi%%~nj.part*%%~xi" 2>nul
- )
- )
- )
- )
- pause
复制代码
作者: bluesky123 时间: 2023-11-29 13:19
code1
code2
77七 发表于 2023-11-29 12:03
运行成功,感谢大佬
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |