标题: [文件操作] 批处理如何把下级目录批量弄出来? [打印本页]
作者: digitaliori 时间: 2019-12-21 13:28 标题: 批处理如何把下级目录批量弄出来?
上网找了游戏,但是游戏都在下一级的目录里面,想把游戏的目录连同文件都弄出来,却怎么搞不出来,一个一个弄又太多了,上网找了批处理,但是用不了,代码又实在太难看不懂,只好求助各位大神,这些下级的游戏目录怎么才能一起弄出来
作者: /zhqsystem/zhq 时间: 2019-12-21 23:55
本帖最后由 /zhqsystem/zhq 于 2019-12-22 23:52 编辑
2019/12/22 23:52 更新错误
-
- @Echo Off
- for /f "delims=" %%i in ('dir/ad/s/b ".\*WIICH*"')do if /i "%%~nxi"=="WIICH" (
- for /f "delims=" %%j in ('dir/ad/b "%%~fi\WIICH*"')do (
- xcopy/s/e/y "%%~fi\%%~nxj\*.*" "E:\123\%%~nxj\"
- )
- )
复制代码
作者: digitaliori 时间: 2019-12-22 10:55
回复 2# /zhqsystem/zhq
非常感谢大神的帮助~
我把目标路径改了一下,在结尾处加了一个pause,运行的结果是这样的,子目录没有移动出来
请问大神可以怎样修改代码,谢谢了
作者: Batcher 时间: 2019-12-22 22:01
回复 1# digitaliori
请举例说明弄出来放在什么地方?
作者: digitaliori 时间: 2019-12-22 22:37
回复 4# Batcher
好的,游戏的目录在E盘WIICH目录里面,分别存放在WIICH001—WIICH070里面,其下是游戏名称的目录,里面是文件,想把游戏名称目录和其存放的文件一同移动到相同盘符的E盘123目录里面
作者: /zhqsystem/zhq 时间: 2019-12-22 23:53
回复 5# digitaliori
已更新错误
作者: netdzb 时间: 2019-12-23 05:44
本帖最后由 netdzb 于 2019-12-23 05:45 编辑
回复 2# /zhqsystem/zhq
我搭车请教一下,如何我想把目录下面的子目录打成一个个独立的压缩包该怎么写代码?
一个文件夹对应一个压缩包。
只打包文件夹,文件不打包。
作者: kswdiy 时间: 2019-12-23 09:24
回复 7# netdzb
你的意思说 把游戏移到新的游戏根目录后 重新把游戏按一个文件夹目录打包成游戏包对吧
我以前自己写了个打包 漫画的批处理
应该可以
:winrar- echo.&echo.&echo.批量打包当前目录下各个文件夹并删除&echo.&echo 请将批量打包当前目录文件夹拖入本窗口: &set/p paths=
-
- ::获取待复制文件夹名称和获取无双引号后的目录变量 winrar程序路径
- for /f "usebackq delims=" %%i in ('%paths%') do set "folder=%%~nxi"
- for /f "usebackq delims=" %%a in ('%paths%') do set "paths=%%~a"
- set RarPath=C:\Program Files\WINRAR\winRAR.EXE
-
- for /l %%i in (1,1,1) do echo %%i>nul
-
- for /f "usebackq delims=" %%I in (`dir /ad/b/s/on "%paths%\*.*"`) do (
- "%RarPath%" a -m5 -r -ep1 -inul -y -o+ -ibck "%%I.rar" "%%I\*.*"
- rd /q /s "%%I"
- )
-
- exit
复制代码
7z版本的:- @echo off&mode con: cols=42 lines=15&PUSHD %~dp0
-
- set Titlietool=压缩文件批量解压/压缩
- title %Titlietool%
- :SetPath
- color 2F
- cls
- echo.&echo.&echo.&echo 批量解压/压缩目录文件夹拖入本窗口: &set/p paths=
- ::获取待复制文件夹名称和获取无双引号后的目录变量 winrar程序路径
- for /f "usebackq delims=" %%i in ('%paths%') do set "folder=%%~nxi"
- for /f "usebackq delims=" %%a in ('%paths%') do set "paths=%%~a"
-
- :MENU
- color 2F
- cls
- echo.&echo.
- echo. 1. 解压文件目录下压缩文件
- echo.
- echo. 2. 压缩文件目录下压缩文件
- echo.
- echo. 3. 重新选择目录
- echo.&echo.&echo.
-
- SET Choice=
- SET /P Choice=请选择要进行的操作(1,2,Q),再按回车:
- IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
- IF /I '%Choice:~0,1%'=='1' GOTO UnPacked
- IF /I '%Choice:~0,1%'=='2' GOTO Packed
- IF /I '%Choice:~0,1%'=='3' GOTO SetPath
- IF /I '%Choice:~0,1%'=='Q' exi
- echo.&color 4f&echo 请勿乱输入!!!任意键继续...&PAUSE >NUL &goto MENU
-
-
-
- :UnPacked
- for %%a in (zip rar 7z) do (
- for /f "usebackq delims=" %%I in (`dir /b/s/on/a:-d "%paths%\*.%%a"`) do (
- rem echo.%%~nxI&echo.%%~nI&pause>nul
- IF not exist "%paths%\%%~nI\" md "%paths%\%%~nI"
- "%~dp07z\7z" x -y "%%I" "-o%paths%\%%~nI") >nul 2>nul
- )
- echo.解压完毕!
- for /l %%i in (1,1,1000) do echo %%i>nul
- goto menu
-
- :Packed
- for /f "usebackq delims=" %%I in (`dir /ad/b/on "%paths%\*"`) do (
- rem echo.%%I&pause>nul
- "%~dp07z\7z" a -t7z -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on "%paths%\%%~nxI.7z" "%paths%\%%~nxI"
- rd /q/s "%paths%\%%~nI"
- )
- echo.压缩完毕!
- for /l %%i in (1,1,1000) do echo %%i>nul
- goto menu
-
-
-
- rem >nul 2>nul
- exit
复制代码
作者: netdzb 时间: 2019-12-23 10:41
本帖最后由 netdzb 于 2019-12-23 10:59 编辑
回复 8# kswdiy
谢谢了,我学习一下。
代码中的dir/on表示什么?
作者: Batcher 时间: 2019-12-23 20:07
回复 9# netdzb
/O 用分类顺序列出文件。
排列顺序 N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 反转顺序的前缀
作者: /zhqsystem/zhq 时间: 2019-12-23 23:38
回复 7# netdzb
1,
7z a -t7z -mhe -r -p解压密码 "压缩到文件的新完整路径.7z" "for变量引入"
2,
拖拽的
7z a -t7z -mhe -r -p解压密码 "%~dp1%~nx1.7z" "%~f1"
3,
循环调用的
call:循环调用参数 解压密码 "压缩包名称" "压缩的文件或文件夹" 说明:如果只压缩里边的文件将%~f3后边加上\*
pause
exit
:循环调用参数
7z a -t7z -mhe -r -p%1 "%~dp3%~nx2.7z" "%~f3"
goto:eof
作者: digitaliori 时间: 2019-12-24 21:32
非常感谢各位大神的帮助~
作者: netdzb 时间: 2019-12-24 21:51
回复 12# digitaliori
我也搭车学习了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |