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

[文本处理] 【已解决】批处理文件夹提取和并列的提取的问题

[复制链接]
发表于 2022-4-26 17:04:39 | 显示全部楼层 |阅读模式
本帖最后由 duoduo200 于 2022-4-26 18:50 编辑

[img][/img]
各位大佬好!

请帮忙修改一下代码,该代码主要是提取文件夹下文件上来(如图箭头1我已经添加到右键里了)。在实际运用中发现一个致命问题,就是箭头2指向的文件夹  所在的文件夹,同时还有其他并列兄弟文件夹的话,一旦运行bat,就会把箭头2和并列文件夹里所有文件都提取到上层父文件夹下了。
为了便于理解我再举个例(其实就是上面的情况,换种说法):如果把该bat放在A文件夹下运行(A文件夹下有BC两个子文件夹,子文件下有若干文件),会同时提取BC里所有的文件到A文件夹下,但我只想要提取B文件夹或者C文件夹下的。

但按照逻辑分析,不指定文件夹,电脑也无法判断该提取哪个。
所以是否可以添加一个判断条件,如果A文件夹下只有一个子文件夹就提取该文件夹后并删除空文件夹,但如果存在两个或者以上的文件夹,就只提取当前文件夹(箭头2)下的文件。
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b /s ') do (
  3. move "%%~a" ./ 2>nul
  4. )
复制代码
同样要有遍历、不能指定文件夹名称和路径。
发表于 2022-4-26 17:50:14 | 显示全部楼层
  1. @echo off
  2. if "%~1" equ "" exit
  3. if not exist "%~1" (echo;Path Error Or Not Folder&pause&exit)
  4. for /f "delims=" %%a in ('dir /a-d/b/s "%~1" 2^>nul') do (
  5.     echo;"%%a" --^> "%~dp1"
  6.     move "%%a" "%~dp1"
  7. )
  8. rem rd /s /q "%~1"
  9. pause
  10. exit
复制代码
 楼主| 发表于 2022-4-26 18:42:10 | 显示全部楼层
本帖最后由 duoduo200 于 2022-4-26 18:46 编辑

回复 2# zaqmlp


我武断了大佬,原来是专门给我添加右键使用的,我说怎么单独用没有反应呢。
大佬就是人狠话不多!
发表于 2022-4-26 18:46:43 | 显示全部楼层
回复 3# duoduo200

右键菜单
 楼主| 发表于 2022-4-26 18:48:15 | 显示全部楼层
回复 4# zaqmlp


   嗯嗯。

大佬一杯咖啡,以表心意。已经支付。

另,最近还有需求,还得麻烦你哈。
 楼主| 发表于 2022-4-26 19:29:31 | 显示全部楼层
回复 4# zaqmlp


   大佬,非常好用,但能不能再加一个删除当前文件夹,因为提取后就空了,无保留价值。
发表于 2022-4-26 19:40:26 | 显示全部楼层
回复 6# duoduo200
rd 前 rem 去掉
发表于 2022-4-26 19:42:30 | 显示全部楼层
  1. Microsoft Windows [版本 10.0.19044.1645]
  2. (c) Microsoft Corporation。保留所有权利。

  3. C:\Users\Administrator>rem /?
  4. 在批处理文件或 CONFIG.SYS 里加上注解或说明。

  5. REM [comment]

  6. C:\Users\Administrator>rd /?
  7. 删除一个目录。

  8. RMDIR [/S] [/Q] [drive:]path
  9. RD [/S] [/Q] [drive:]path

  10.     /S      除目录本身外,还将删除指定目录下的所有子目录和
  11.             文件。用于删除目录树。

  12.     /Q      安静模式,带 /S 删除目录树时不要求确认
复制代码
 楼主| 发表于 2022-4-26 20:05:06 | 显示全部楼层
回复 8# zaqmlp


    大佬没看懂,这个也是达到我说的需求吗?
发表于 2022-4-26 20:18:53 | 显示全部楼层
delete "rem" before "rd"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 04:30 , Processed in 0.019466 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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