标题: [文件操作] 批处理如何实现可选择性是否批量解压指定目录/路径/文件夹里的压缩文件/压缩包 [打印本页]
作者: eclairkk 时间: 2017-3-18 17:30 标题: 批处理如何实现可选择性是否批量解压指定目录/路径/文件夹里的压缩文件/压缩包
本帖最后由 eclairkk 于 2017-3-20 20:19 编辑
******************20170320问题******************
自行测出BUG,求BUG,求解决。
1 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
2 批处理无法直接输出checked=1,虽然 checked=“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
作者: eclairkk 时间: 2017-3-18 17:32
遍历目录 我只找到单列显示的
@echo off
for /f "delims=" %%a in ('dir /s/a-d /b *.rar') do echo %%~na
pause
作者: 老刘1号 时间: 2017-3-18 18:14
一点都不难
作者: eclairkk 时间: 2017-3-18 18:30
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-19 21:05
本帖最后由 ShowCode 于 2017-3-19 22:52 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
- set input=
- set /p input=[Y/N]
- if /i "!input!" equ "Y" (
- "U:\soft\7.exe" e "%%i" -o "C:\p"
- )
- )
复制代码
作者: eclairkk 时间: 2017-3-19 22:24
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: bbaa 时间: 2017-3-19 22:30
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
- set input=
- set /p input=[Y/N]
- if /i "!input!"=="Y" (
- "U:\soft\7.exe" e "%%i" -o "C:\p"
- )
- )
复制代码
作者: eclairkk 时间: 2017-3-19 22:37
本帖最后由 eclairkk 于 2017-3-20 20:14 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 22:39
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: bbaa 时间: 2017-3-19 22:43
回复 8# eclairkk - @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
- set input=
- if /i not "!input!"=="A" (
- set /p input=%%~i:[Y/N/A]
- )
- if /i "!input!"=="Y" (
- "U:\soft\7.exe" e "%%~i" -o "C:\p"
- )
- if /i "!input!"=="A" (
- "U:\soft\7.exe" e "%%~i" -o "C:\p"
- )
- )
复制代码
A是All
作者: eclairkk 时间: 2017-3-19 22:49
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-19 22:52
回复 6# eclairkk
5楼代码第6行笔误,已更正。
作者: ShowCode 时间: 2017-3-19 22:54
回复 11# eclairkk
这样可以一个一个询问并生成new.bat- @echo off
- setlocal enabledelayedexpansion
- >"new.bat" type nul
- for /f "delims=" %%i in ('dir /b /s /a-d "U:\soft\*.7z"') do (
- set input=
- set /p input=[Y/N]
- if /i "!input!" equ "Y" (
- >>"new.bat" echo "U:\soft\7.exe" e "%%i" -o "C:\p"
- )
- )
复制代码
作者: eclairkk 时间: 2017-3-19 22:56
本帖最后由 eclairkk 于 2017-3-20 20:15 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 22:58
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 22:59
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 23:00
回复 eclairkk
这样可以一个一个询问并生成new.bat
ShowCode 发表于 2017-3-19 22:54
可否帮忙 改下楼下的代码 做到一个批处理完成?
作者: eclairkk 时间: 2017-3-19 23:01
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-19 23:07
回复 15# eclairkk
那确实比较奇怪,13楼的代码及时只有前面3行执行成功,也能创建new.bat,有没有可能你找错路径了?
作者: eclairkk 时间: 2017-3-19 23:10
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 23:20
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-19 23:24
回复 21# eclairkk
报错信息是什么?
作者: eclairkk 时间: 2017-3-19 23:25
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 23:28
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-19 23:29
回复 23# eclairkk
第二行和第三行可以合并成1行,注意只有1个大于号
echo [copyright]>AppList.ini
作者: eclairkk 时间: 2017-3-19 23:29
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 23:30
回复 eclairkk
第二行和第三行可以合并成1行,注意只有1个大于号
echo [copyright]>AppList.ini
ShowCode 发表于 2017-3-19 23:29
感谢,已改
作者: ShowCode 时间: 2017-3-19 23:33
回复 26# eclairkk
set/p xz=是否解压%line% Y/N:
if /i "%xz%"=="y" (
set /a eNum+=1
goto A
)
这里加个计数器就知道有几个啦
作者: eclairkk 时间: 2017-3-19 23:36
本帖最后由 eclairkk 于 2017-3-20 20:16 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: eclairkk 时间: 2017-3-19 23:47
本帖最后由 eclairkk 于 2017-3-20 20:17 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-20 09:12
本帖最后由 pcl_test 于 2017-3-20 19:48 编辑
回复 30# eclairkk - @echo off
- setlocal enabledelayedexpansion
- type nul >AppList.ini.tmp
- for /f "delims=" %%i in ('dir /s/b/a-d *.7z') do (
- set line=%%i
- call :output
- )
-
- echo [copyright]>AppList.ini
- echo Author=有容乃大[YXG8855]>>AppList.ini
- echo MyBLOG=http://hi.baidu.com/yxg8855>>AppList.ini
- echo [config]>>AppList.ini
- echo num=!eNum!>>AppList.ini
- echo afterRun=>>AppList.ini
- type AppList.ini.tmp >>AppList.ini
- start cmd /c "call App.exe"
-
- exit
-
- :output
- set/p xz=是否解压%line% Y/N:
-
- if /i "%xz%"=="y" (
- set /a eNum+=1
- goto A
- ) else (
- goto B
- )
-
- :A
- echo !eNum!>>AppList.ini.tmp
- echo softname= %line%>>AppList.ini.tmp
- echo 7zPath=%line%>>AppList.ini.tmp
- echo diskpath=C:\Test>>AppList.ini.tmp
- :B
复制代码
作者: eclairkk 时间: 2017-3-20 18:19
本帖最后由 eclairkk 于 2017-3-20 20:17 编辑
******************20170320******************
求BUG,求解决。
自行测出 文件名为单数字:1.7z、2.7z、3.7z 的时 批处理无法生成正确的配置文件,丢失文件名部分的配置。
作者: ShowCode 时间: 2017-3-20 19:19
本帖最后由 pcl_test 于 2017-3-20 19:49 编辑
回复 32# eclairkk
31楼已修改
作者: eclairkk 时间: 2017-3-20 20:07
本帖最后由 eclairkk 于 2017-3-20 20:13 编辑
回复 eclairkk
31楼已修改
ShowCode 发表于 2017-3-20 19:19
本问题基本完成了,还有小BUG待修正:1楼更新百度分享,内有网络搜索得到的程序文件,以及通过批处理生成的配置文件,求解答疑惑。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |