批处理问题,帮忙修改下这个代码将文件名批量修改成上一级文件夹的名字

@echo off&setlocal enabledelayedexpansion
for /r %%i in (*.*) do (set "fn=%%~dpi"
for /f "delims=" %%j in ("!fn:~,-1!") do ren "%%i" "%%~nj-%%~nxi")
pause

上面的代码是在别的知道回答里面看到的测试可用,将文件名批量修改成上一级文件夹的名字(加原来文件名),求修改为 不包含原来文件名的代码,直接是上级文件夹的名字。谢谢

@echo off&setlocal enabledelayedexpansion
for /r %%i in (*.*) do (set "fn=%%~dpi"
for /f "delims=" %%j in ("!fn:~,-1!") do ren "%%i" "%%~nj")
pause

如果不行就把%%~nj改成%%~nxi。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-26
直接把 %%~nj-%%~nxi 改成 %%~nj%%~xi 即可实现您的要求。
相似回答