找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24822|回复: 4

[文件操作] 【已解决】求助批处理解压二级文件夹里的压缩文件

[复制链接]
发表于 2024-3-19 13:45:52 | 显示全部楼层 |阅读模式
本帖最后由 sv5253 于 2024-3-19 17:15 编辑

问题描述:一级文件夹里有多个二级文件夹,二级文件夹里面是.zip的压缩文件,目的将压缩文件解压删除源文件,将压缩文件的内容往外拿一层

例如:
1\1.1.zip(1.txt)
2\2.2.zip(2.txt)
修改成
1\1.txt
2\2.txt
进行批量操作删除中间冗余文件夹
  1. @echo off
  2. cd /d "%~dp0"
  3. set "path=D:\Program Files\WinRAR;%path%"
  4. for /d %%d in (*) do (
  5.                 for /f "delims=" %%i in ("%%d\*.zip") do (
  6.                    WinRAR.exe  x "%%i" "%%~ni" && del %%i
  7.                 )
  8.         )
  9. for /d %%d in (*) do (
  10.         for /d %%e in ("%%d\*") do (
  11.                 robocopy "%%e" "%%d" /e /move /xc /xn /xo
  12.         )
  13. )
  14. pause
复制代码
我试着写了一个程序,有些繁琐,请帮我指点简化一下,或者有没有更好的方式

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-3-19 15:48:14 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. set "path=D:\Program Files\WinRAR;%path%"
  4. for /d %%d in (*) do (
  5.         for /f "delims=" %%e in ('dir /b /a-d "%%d\*.zip" 2^>nul') do (
  6.                 winrar.exe x "%%d\%%e" "%%d" && del "%%d\%%e"
  7.         )
  8. )
  9. pause
复制代码
 楼主| 发表于 2024-3-19 16:39:45 | 显示全部楼层
本帖最后由 sv5253 于 2024-3-19 16:51 编辑

回复 2# 77七
这个程序运行以后不是预期效果,直接解压到一级文件夹里面,解压完以后有一个二级文件夹存在
结果:
1\1.1\1.txt
2\2.2\2.txt
不是预期结果
1\1.txt
2\2.txt
发表于 2024-3-19 17:02:21 | 显示全部楼层
回复 3# sv5253


   
你压缩文件本来就压缩的是一个文件夹,解压出来是文件夹,这是对的。应该就没有什么好精简的了,只能通过批处理再次移动。
如果你只想提取压缩文件里的内容,不保留目录结构,可以把 x 换成 e 试试

评分

参与人数 1技术 +1 收起 理由
sv5253 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-3-19 17:14:04 | 显示全部楼层
本帖最后由 sv5253 于 2024-3-19 17:27 编辑

回复 5# 77七


    可以的,忽略目录可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:10 , Processed in 0.019027 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表