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

[文件操作] 【已解决】求助批处理文件夹重命名

本帖最后由 lj670 于 2024-11-22 14:35 编辑

如何达成当前文件夹下运行,以其子文件夹名重命名孙文件夹名,例如当前文件夹中有a文件夹,a文件夹内有b文件夹,运行后,以a文件夹名重命名b文件夹,我有一个以当前文件夹名命名子文件夹的,可以参考
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: 获取当前目录下的第一个子文件夹
  4. for /d %%i in (*) do (
  5.     set "firstFolder=%%i"
  6.     goto :break
  7. )
  8. :break
  9. :: 获取父文件夹的名字
  10. for %%i in ("%cd%") do (
  11.     set "parentFolderName=%%~nxi"
  12. )
  13. :: 重命名操作
  14. if defined firstFolder if defined parentFolderName (
  15.     ren "%firstFolder%" "%parentFolderName%"
  16. ) else (
  17.     echo No subfolder or parent folder name not found.
  18. )
  19. endlocal
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 6# aloha20200628


    对呀,就是单个的,而且都是a\b\c这种的,a文件夹运行以b命名c,所以正好用,不会因同名报错。

TOP

回复 1# lj670

将 a\b\...\z 更名为 a\a\...\a,各代必须是 ‘独生子’,否则这种命名要求就会被系统报错...

TOP

回复 2# flashercs


    脚本运行后,还是一样以当前文件夹名命名了a文件夹和b文件夹,不是以a文件夹名重命名b文件夹名,3楼回复已经解决了,谢谢!

TOP

回复 3# 77七


    运行完美!谢谢

TOP

  1. @echo off
  2. cd /d "%~dp0"
  3. for /d %%d in (*) do (
  4. for /d %%e in ("%%d\*") do (
  5. ren "%%e" "%%d"
  6. )
  7. )
  8. pause
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

  1. @echo off
  2. cd /d "%~dp0"
  3. for /r /d %%A in (*) do (
  4.   for %%B in ("%%~fA\..") do (
  5.     ren "%%~fA" "%%~nxB"
  6.   )
  7. )
  8. pause
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表