Board logo

标题: [文件操作] 批处理如何把下级目录批量弄出来? [打印本页]

作者: 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 更新错误
  1. @Echo Off
  2. for /f "delims=" %%i in ('dir/ad/s/b ".\*WIICH*"')do if /i "%%~nxi"=="WIICH" (
  3. for /f "delims=" %%j in ('dir/ad/b "%%~fi\WIICH*"')do (
  4.   xcopy/s/e/y "%%~fi\%%~nxj\*.*" "E:\123\%%~nxj\"
  5. )
  6. )
复制代码

作者: 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
  1. echo.&echo.&echo.批量打包当前目录下各个文件夹并删除&echo.&echo 请将批量打包当前目录文件夹拖入本窗口: &set/p paths=
  2. ::获取待复制文件夹名称和获取无双引号后的目录变量  winrar程序路径
  3. for /f "usebackq delims="  %%i in ('%paths%') do set "folder=%%~nxi"
  4. for /f "usebackq delims="  %%a in ('%paths%') do set "paths=%%~a"
  5. set RarPath=C:\Program Files\WINRAR\winRAR.EXE
  6. for /l %%i in (1,1,1) do echo %%i>nul
  7. for /f "usebackq delims="  %%I in (`dir /ad/b/s/on "%paths%\*.*"`) do (
  8. "%RarPath%" a -m5 -r -ep1 -inul -y -o+ -ibck "%%I.rar"  "%%I\*.*"
  9. rd /q /s "%%I"
  10. )
  11. exit
复制代码
7z版本的:
  1. @echo off&mode con: cols=42 lines=15&PUSHD %~dp0
  2. set Titlietool=压缩文件批量解压/压缩
  3. title  %Titlietool%
  4. :SetPath
  5. color 2F
  6. cls
  7. echo.&echo.&echo.&echo 批量解压/压缩目录文件夹拖入本窗口: &set/p paths=
  8. ::获取待复制文件夹名称和获取无双引号后的目录变量  winrar程序路径
  9. for /f "usebackq delims="  %%i in ('%paths%') do set "folder=%%~nxi"
  10. for /f "usebackq delims="  %%a in ('%paths%') do set "paths=%%~a"
  11. :MENU
  12. color 2F
  13. cls
  14. echo.&echo.
  15. echo.   1. 解压文件目录下压缩文件
  16. echo.
  17. echo.   2. 压缩文件目录下压缩文件
  18. echo.
  19. echo.   3. 重新选择目录
  20. echo.&echo.&echo.
  21. SET Choice=
  22. SET /P Choice=请选择要进行的操作(1,2,Q),再按回车:
  23. IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
  24. IF /I '%Choice:~0,1%'=='1' GOTO UnPacked
  25. IF /I '%Choice:~0,1%'=='2' GOTO Packed
  26. IF /I '%Choice:~0,1%'=='3' GOTO SetPath
  27. IF /I '%Choice:~0,1%'=='Q' exi
  28. echo.&color 4f&echo 请勿乱输入!!!任意键继续...&PAUSE >NUL &goto MENU
  29. :UnPacked
  30. for %%a in (zip rar 7z) do (
  31. for /f "usebackq delims="  %%I in (`dir /b/s/on/a:-d "%paths%\*.%%a"`) do (
  32. rem echo.%%~nxI&echo.%%~nI&pause>nul
  33. IF not exist "%paths%\%%~nI\" md "%paths%\%%~nI"
  34. "%~dp07z\7z" x -y "%%I" "-o%paths%\%%~nI") >nul 2>nul
  35. )
  36. echo.解压完毕!
  37. for /l %%i in (1,1,1000) do echo %%i>nul
  38. goto menu
  39. :Packed
  40. for /f "usebackq delims="  %%I in (`dir /ad/b/on "%paths%\*"`) do (
  41. rem echo.%%I&pause>nul
  42. "%~dp07z\7z" a -t7z  -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on "%paths%\%%~nxI.7z" "%paths%\%%~nxI"
  43. rd /q/s "%paths%\%%~nI"
  44. )
  45. echo.压缩完毕!
  46. for /l %%i in (1,1,1000) do echo %%i>nul
  47. goto menu
  48. rem >nul 2>nul
  49. 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://www.bathome.net/) Powered by Discuz! 7.2