bat批量命名求助

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:26:25
例:D:/aaaa/dsadh.txt D:/bbbb/dsad.txt
输出结果 D:/aaaa/aaaadsadh.txt D:/bbbb/bbbbdsad.txt
要求把d盘下所有 原文件名.txt的文件改成 上级文件夹名+原文件名 这样的批量命令改怎么写。。。如果有相应软件推荐也行谢谢

可以.
测试成功!

@echo off
setlocal enabledelayedexpansion
call:main %*
endlocal
pause>con
goto :eof

:main
for /f "delims=" %%i in ('dir /a:-d /b /s D:\"*.txt"') do (
call:wenjianjiaming "%%i"
ren "%%i" "!answer!%%~nxi"
)
exit /b

:wenjianjiaming
set "f=%~dp1"
for /f "delims=" %%i in ("!f:~0,-1!") do set "answer=%%~nxi"
exit /b

用Replace Pioneer 2.2可以轻易办到,步骤:

1. 选择Tools->Batch Runner 菜单。
2. 点击"Search Files",把Filter设成*.*, 并把Search subdirectory选项选中,并输入待搜索目录,点击Search, 系统会搜到所有子目录下的文件。
3. 把文件按需排好序(点击每列的抬头即可排序)。 可以按时间,名字等排序,或只按数字排序,并可按up或down微调顺序。
4. 把set output filename 中的${FILENAME}修改为:#<basename(getcwd)>${FILENAME},即可把所有文件名前面加上目录名。

5. 检查新文件名满足要求后,点击Rename,完成重命名。

注:如果目录含有中文字符,用#<decode('gbk',basename(ge