[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批量获取文件夹名字+识别到我指定的文件夹名字后进行压缩+压缩包自动解压

本帖最后由 304802301 于 2024-11-15 21:10 编辑

求助大神!我这里有3个小需求,需要大神帮忙写3个批处理

一、批量获取文件夹名字
1、我可以指定某个路径,需要获取他里面的所有的文件夹名字【子路径,子子路径,子子子路径,等等等等,只要是这个路径下面的所有文件夹都要获取】
2、只获取的是文件夹名字,文件名字是不需要的
3、获取后输出到txt,每一行都包含1个完整路径
4、我会提供一个示例,里面有很多文件夹,输出的结果txt参考如下:
d:\我的文档\桌面\示例1115\asdzxc-fge555-fh
d:\我的文档\桌面\示例1115\asdzxc-fge555-fh\qweqw-e-23--aw-2
d:\我的文档\桌面\示例1115\asdzxc-fge555-fh\qweqw-e-23--aw-2\qw0d230e--3-4t-rdg-d-s
d:\我的文档\桌面\示例1115\kjoj-asdas1-ss
d:\我的文档\桌面\示例1115\kjoj-asdas1-ss\asdq-12-wqwa
d:\我的文档\桌面\示例1115\kjoj-asdas1-ss\oiaoshdo-qweascas-11s




二、识别到我指定的文件夹名字后进行压缩
1、我提供一个list.txt,里面每一行都是一个文件夹名字,当识别到我提供的文件夹名字后,自动把这个文件夹压缩
2、压缩后的压缩包要求是:压缩包里面还是这个文件夹。【效果是:windows图形界面操作中,选中这个文件夹,点击右键后,选择压缩】
3、压缩后,这个压缩包就放在和这个文件夹同级目录下即可【示例中我已经有压缩好的压缩包,参考这个压缩包就行】
4、list.txt的具体内容如下:
qweqw-e-23--aw-2
asdq-12-wqwa





三、对某个路径下所有的压缩包自动解压
1、我指定一个路径,识别下面所有的压缩包(rar格式),【子路径,子子路径,子子子路径,等等等等,只要是这个路径下面的所有rar文件都要解压】
2、识别到之后自动解压【效果是:windows图形界面操作中,选中这个压缩包,点击右键后,选择“解压到当前文件夹”】
3、解压后的内容,放在和这个压缩包同级目录下即可


以上我会提供一个示例https://pan.baidu.com/s/1S4K-iaowTDyw1h8OB_lXVw 提取码:d6x8

回复 5# 304802301


  
  1. @echo off
  2. set folder=d:\a
  3. set file=d:\list.txt
  4. for /f "useback delims=" %%a in ("%file%") do (
  5. set _"%%~na"=1
  6. )
  7. for /f "delims=" %%i in ('dir /b /s /a-d "%folder%\*.rar"') do (
  8. if defined _"%%~ni" (
  9. rar x "%%i" "%%~dpi"
  10. )
  11. )
  12. pause
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 304802301 于 2024-12-4 22:50 编辑

回复 3# 77七


    老哥,这三个都可以。
然后第三个解压文件能不能麻烦再改一下,我的需求有点变化,我现在的需求是:我指定一个list.txt,里面每一行都存放一个压缩文件的文件名【每一行的格式是:文件名.rar】,再指定一个路径,然后在这个路径下的所有文件(含所有子文件夹、子子文件夹等等等等),去识别到在list.txt里的文件才执行解压,麻烦了麻烦了

TOP

回复 1# 304802301


1.bat
  1. @echo off
  2. dir /b /s /ad "D:\你\指定\某个路径" > "1.txt"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. set folder=d:\a
  3. cd /d "%~dp0"
  4. >out.txt dir /b /s /ad "%folder%"
  5. pause
  6. @echo off
  7. set folder=d:\a
  8. set file=d:\list.txt
  9. for /f "useback delims=" %%a in ("%file%") do (
  10. set _"%%~nxa"=1
  11. )
  12. for /f "delims=" %%i in ('dir /b /s /ad "%folder%"') do (
  13. if defined _"%%~nxi" (
  14. rar a "%%i.rar" -ep1 "%%i"
  15. )
  16. )
  17. pause
  18. @echo off
  19. set folder=d:\a
  20. for /f "delims=" %%i in ('dir /b /s /a-d "%folder%\*.rar"') do (
  21. rar x "%%i" "%%~dpi"
  22. )
  23. pause
复制代码
bat小白,请多指教!谢谢!

TOP

我只说第一个吧
  1. dir /s /ad /b
复制代码

TOP

返回列表