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

[文件操作] [已解决]批处理将子目录里的文件夹移动到父目录中去

[复制链接]
 楼主| 发表于 2020-10-12 22:25:47 | 显示全部楼层
感谢大家,刚刚上班比较忙没有及时感谢各位老师 抱歉了
关于这个问题的解决办法,线下有个朋友帮忙解决了
方法是:首先剪切出所有文件夹,剪切出来以后把这文件夹加一个统一的后缀,如:1_new,在全部剪切出来后删除空文件夹,这样也就把原先的父文件夹删除掉了  再统一去掉后缀  然后就OK了
请原谅不能把代码贴出来  因为朋友写的是类似exe的程序 我看不到代码
再次感谢
发表于 2020-10-13 10:11:49 | 显示全部楼层
回复 16# 001011
由于批处理运行时是按顺序一行行执行的,上面所说的三步可以写在一个批处理里面。
  1. @echo off
  2. for /r /d %%a in (*) do (
  3.     dir /b /ad "%%a" | findstr . >nul || (
  4.         for %%i in ("%%a\..") do move "%%a" "%%~dpa\..\%%~nxi_%%~na" >nul
  5.     )
  6. )
  7. for /f "delims=" %%m in ('dir /ad /b /s^|sort /r') do rd "%%m" 2>nul
  8. setlocal enabledelayedexpansion
  9. for /r /d %%n in (*) do (
  10.     dir /b /ad "%%n" | findstr . >nul || (
  11.         set var=%%n
  12.         set var=!var:*_=!
  13.         ren "%%n" "!var!"
  14.     )
  15. )
  16. pause&exit
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 非常好用 感谢啊

查看全部评分

发表于 2022-2-9 11:11:41 | 显示全部楼层
回复 2# went




for /r "%folder%" /d %%i in (*) do (  

请教一下   
    "%folder%" /d  
    这个/d 有什么作用?可以把这个/d 移动到 /r  后面吗?
发表于 2022-2-9 11:57:29 | 显示全部楼层
回复 18# 唏嘘的南巴仔


参考for命令教程第10页:
http://bbs.bathome.net/thread-31727-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 09:44 , Processed in 0.019174 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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