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

[文件操作] 批处理如何实现可选择性是否批量解压指定目录/路径/文件夹里的压缩文件/压缩包

[复制链接]
发表于 2017-3-18 17:30:55 | 显示全部楼层 |阅读模式
本帖最后由 eclairkk 于 2017-3-20 20:19 编辑

******************20170320问题******************
自行测出BUG,求BUG,求解决。
1 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
2 批处理无法直接输出checked=1,虽然 checked=“1” 效果一样
未验证完整代码链接
  1. https://pan.baidu.com/s/1eSvGLvs
复制代码
.

;---以下是软件自选安装配置文件---
;// <简要说明>
;//
;//“set”一项必须置顶,其他软件放在[SET]之后,名字按1-n数字命名,如 [1],软件数量不限。
;// name/autopath/Manual/ver/ico/Parameter/line/checked这些字段不能改。

;// name---------软件名;
;// autopath-----自动安装软件相对路径;
;// Manual-------自定义安装软件相对路径;
;// ver----------软件版本,如无就自动获取;
;// ico----------软件图标;
;// Parameter----软件安装参数;
;// line---------软件简要说明;
;// checked------软件默认选择状态,"1"为默认选中,空为不选中。
;// 如:"logopath=logo\logo.jpg" 填写图片相对路径,如不填则按默认显示LOGO。图片尺寸:Width:108×Height:340
;// rd=后写出程序结束时删除的文件夹(相对路径即可),如:software等
;// delmyself=后为1将删除程序自身;为2将删除所在文件夹。

[set]
name=软件自选安装管理器
softversion= ""
wait=20
logopath=logo.jpg
Author="更多软件下载点击这里"
Link="http://shareto.blog.1633.com/"
rd=
delmyself=

[1]
name=[系统] 万能驱动助理
autopath=apps\系统\Drivers.exe
Manual=apps\系统\Drivers.exe
ver=6.6.2016.0815
ico=
Parameter=
line=WindowsXP_32位 Windows7_64位 万能驱动
checked=1

******************20170318问题******************
【高难度】多个压缩包根据情况选择解压部分
压缩包类型:7z
压缩包路径:U盘soft目录下的多个二三级目录

需求:
遍历U:\soft目录及子目录下的压缩包。批处理内显示文件名列表。

调用U盘soft目录下的7z解压程序,解压遍历得到的文件,解压前提示选择YN。Y解压,N不解压。

解压路径C:\p
 楼主| 发表于 2017-3-18 17:32:17 | 显示全部楼层
遍历目录 我只找到单列显示的

@echo off
for /f "delims=" %%a in ('dir /s/a-d /b *.rar') do echo %%~na

pause
发表于 2017-3-18 18:14:38 | 显示全部楼层
一点都不难
 楼主| 发表于 2017-3-18 18:30:43 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。

评分

参与人数 1PB -30 收起 理由
pcl_test -30 勿随意删改原帖内容

查看全部评分

发表于 2017-3-19 21:05:56 | 显示全部楼层
本帖最后由 ShowCode 于 2017-3-19 22:52 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
  4.     set input=
  5.     set /p input=[Y/N]
  6.     if /i "!input!" equ "Y" (
  7.         "U:\soft\7.exe" e "%%i" -o "C:\p"
  8.     )
  9. )
复制代码
 楼主| 发表于 2017-3-19 22:24:38 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。

评分

参与人数 1PB -6 收起 理由
pcl_test -6 勿随意删改原帖内容

查看全部评分

发表于 2017-3-19 22:30:16 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
  4.     set input=
  5.     set /p input=[Y/N]
  6.     if /i "!input!"=="Y" (
  7.         "U:\soft\7.exe" e "%%i" -o "C:\p"
  8.     )
  9. )
复制代码
 楼主| 发表于 2017-3-19 22:37:56 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:14 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
 楼主| 发表于 2017-3-19 22:39:20 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
发表于 2017-3-19 22:43:15 | 显示全部楼层
回复 8# eclairkk
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
  4.     set input=
  5. if /i not "!input!"=="A" (
  6.     set /p input=%%~i:[Y/N/A]
  7. )
  8.     if /i "!input!"=="Y" (
  9.         "U:\soft\7.exe" e "%%~i" -o "C:\p"
  10.     )
  11.     if /i "!input!"=="A" (
  12.         "U:\soft\7.exe" e "%%~i" -o "C:\p"
  13.     )
  14. )
复制代码
A是All
 楼主| 发表于 2017-3-19 22:49:36 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。

评分

参与人数 1PB -20 收起 理由
pcl_test -20 勿随意删改原帖内容

查看全部评分

发表于 2017-3-19 22:52:41 | 显示全部楼层
回复 6# eclairkk


    5楼代码第6行笔误,已更正。
发表于 2017-3-19 22:54:05 | 显示全部楼层
回复 11# eclairkk


这样可以一个一个询问并生成new.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. >"new.bat" type nul
  4. for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
  5.     set input=
  6.     set /p input=[Y/N]
  7.     if /i "!input!" equ "Y" (
  8.         >>"new.bat" echo "U:\soft\7.exe" e "%%i" -o "C:\p"
  9.     )
  10. )
复制代码
 楼主| 发表于 2017-3-19 22:56:27 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。

评分

参与人数 1PB -1 收起 理由
pcl_test -1 指定回应某楼层的在相应楼层点回复,少引用

查看全部评分

 楼主| 发表于 2017-3-19 22:58:23 | 显示全部楼层
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑

******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。

评分

参与人数 1PB -20 收起 理由
pcl_test -20 勿随意删改原帖内容

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 18:34 , Processed in 0.024213 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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