求个批处理命令,要求:将多个文件夹内文件的名字修改为其所在文件夹的名字。

2024-11-29 05:34:20
推荐回答(2个)
回答1:

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起运行
@echo off
rem 将多个文件夹里的文件以其所在的上级文件夹名称加数字序号重命名
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /d %%a in (*) do (
set "n="
set "base=%%~nxa"
pushd "%%a"
echo;------------"%%a"------------
for /f "delims=" %%b in ('dir /a-d/b 2^>nul') do (
set "f=%%b"
setlocal enabledelayedexpansion
echo;"!f!" --^> "!base!!n!%%~xb"
endlocal
set /a n+=1
)
popd
)
echo;%#% +%$%%$%/%@% %z%
pause
exit

回答2:

@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文件.