批处理命令修改多级文件夹内文件的名字

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:47:28
多级文件夹:2007/01/aaa/a.txt
现在想遍历2007的文件夹下所有子文件夹(还有02,03..12)下的文件,将这些文件的名字改为:a_aaa.txt(也就是原文件名+_上级文件夹名字)

怎么写这个批处理命令?

@echo off
setlocal enabledelayedexpansion
for /d /r %%a in (*) do (
set "a=%%~nxa"
for %%b in ("%%a\*.txt") do ren "%%b" "%%~nb_!a!%%~xb" >nul 2>nul
)
pause

放在2007根目录下运行.将处理2007子目录下的所有*.txt文件.

测试有效!

@echo off
for /f "delims=" %%a in ('dir * /b/s/ad') do (
for /f "delims=" %%b in ('dir "%%a\*" /a-d/b') do ren "%%a\%%b" %%~nb_"%%~na%%~xb"
)