我需要在Windows 8的批处理文件中的子目录之后重命名文件。例如,我需要将“C:\ path \ to \ my \ logs \ machine0015 \ 001.log”重命名为“C:\” path \ to \ my \ machine0015 \ machine0015.log“
我需要用last-dir名称完全覆盖文件名。每个目录只有一个相关文件。
我无法解决这个问题。自从我完成任何.bat编程以来已经有很长一段时间了。我已经成功完成了我需要的其余部分,但最后一点让我感到难过。我已经尝试过使用FINDSTR或FOR循环,但我似乎无法弄清楚如何从完整路径中提取最后一个子目录的名称(使用随机目录名称和路径深度)。
我被允许写一个临时文件,但是exe或第三方应用程序会被高估,可能是不允许的。这需要在Windows Vista / 7/8上运行,而不是XP。
感谢您的帮助,
奥利弗
答案 0 :(得分:2)
试试这个:
for %%a in ("C:\path\to\my\logs\machine0015\001.log") do for %%b in ("%%~dpa.") do (
ren "%%~fa" "%%~nb%%~xa"
move "%%~dpa%%~nb%%~xa" "%%~dpb"
)