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

[文件操作] 批处理如何把下级目录批量弄出来?

[复制链接]
发表于 2019-12-21 13:28:27 | 显示全部楼层 |阅读模式
上网找了游戏,但是游戏都在下一级的目录里面,想把游戏的目录连同文件都弄出来,却怎么搞不出来,一个一个弄又太多了,上网找了批处理,但是用不了,代码又实在太难看不懂,只好求助各位大神,这些下级的游戏目录怎么才能一起弄出来
发表于 2019-12-21 23:55:20 | 显示全部楼层
本帖最后由 /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. )
复制代码
 楼主| 发表于 2019-12-22 10:55:21 | 显示全部楼层
回复 2# /zhqsystem/zhq


    非常感谢大神的帮助~
我把目标路径改了一下,在结尾处加了一个pause,运行的结果是这样的,子目录没有移动出来

请问大神可以怎样修改代码,谢谢了
发表于 2019-12-22 22:01:27 | 显示全部楼层
回复 1# digitaliori


    请举例说明弄出来放在什么地方?
 楼主| 发表于 2019-12-22 22:37:19 | 显示全部楼层
回复 4# Batcher


    好的,游戏的目录在E盘WIICH目录里面,分别存放在WIICH001—WIICH070里面,其下是游戏名称的目录,里面是文件,想把游戏名称目录和其存放的文件一同移动到相同盘符的E盘123目录里面
发表于 2019-12-22 23:53:20 | 显示全部楼层
回复 5# digitaliori


    已更新错误
发表于 2019-12-23 05:44:37 | 显示全部楼层
本帖最后由 netdzb 于 2019-12-23 05:45 编辑

回复 2# /zhqsystem/zhq

我搭车请教一下,如何我想把目录下面的子目录打成一个个独立的压缩包该怎么写代码?
一个文件夹对应一个压缩包。

只打包文件夹,文件不打包。
发表于 2019-12-23 09:24:59 | 显示全部楼层
回复 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
复制代码
发表于 2019-12-23 10:41:59 | 显示全部楼层
本帖最后由 netdzb 于 2019-12-23 10:59 编辑

回复 8# kswdiy

谢谢了,我学习一下。

代码中的dir/on表示什么?
发表于 2019-12-23 20:07:14 | 显示全部楼层
回复 9# netdzb


  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
发表于 2019-12-23 23:38:28 | 显示全部楼层
回复 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
 楼主| 发表于 2019-12-24 21:32:57 | 显示全部楼层
非常感谢各位大神的帮助~
发表于 2019-12-24 21:51:57 | 显示全部楼层
回复 12# digitaliori

我也搭车学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 00:20 , Processed in 0.031320 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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