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

[文件操作] 求助遍历并修改子目录文件名的批处理程序

[复制链接]
发表于 2021-4-20 14:57:19 | 显示全部楼层 |阅读模式
求助大神,我需要一个遍历子目录并修改文件名的批处理程序。

具体的情况是:

在一个路径下,假如有5个目录,每个目录里都有一个后缀名为.aa的文件。那么我需要一个程序进行判断,如果子目录下存在一个后缀名为.aa的文件,那么就把子目录里的这个文件的后缀修改为.bb。

修改前:
<目录1>/文件1.aa
<目录2>/文件2.aa
<目录3>/文件3.aa
<目录4>/文件4.aa
<目录5>/文件5.aa

修改后:
<目录1>/文件1.bb
<目录2>/文件2.bb
<目录3>/文件3.bb
<目录4>/文件4.bb
<目录5>/文件5.bb

请问这样的程序怎么写?谢谢了!
发表于 2021-4-20 15:03:31 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-4-20 15:12 编辑
  1. @echo off
  2. for /d %%a in (*) do (
  3.     pushd "%%a"
  4.     if exist *.aa for %%b in (*.aa) do ren "%%b" "%%~nb.bb"
  5.     popd
  6. )
  7. pause
复制代码
发表于 2021-4-20 15:41:02 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-4-20 16:45 编辑

这样更简洁:
  1. @echo off
  2. for /d %%a in (*) do (
  3.     pushd "%%a"
  4.     if exist "*.aa" ren "*.aa" "*.bb"
  5.     popd
  6. )
  7. pause
复制代码
发表于 2021-4-20 17:53:08 | 显示全部楼层
回复 3# qixiaobin0715


    if exist "*.aa" 去掉好像也不影响结果
发表于 2021-4-20 21:51:04 | 显示全部楼层
回复 4# Batcher
对结果倒是没什么影响,如果某个文件夹中没有扩展名是aa的文件,就会提示“系统找不到指定的文件”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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