我正在尝试仅使用某个级别的父级递归重命名一组文件。我有文件:
\test\d1\d2\d3\d1.png
\test\d4\d5\d6\d4.png
\test\d7\d8\d9\d7.png
应该转换为:
@echo off
pushd "C:\Users\test"
for /d %%P in (*) do for /f "delims=" %%F in ('dir /b /s /a-d "%%P"') do rename "%%F" "%%P_%%~nxF"
popd
使用for / R递归探索没有明确的解决方案来获取更高级别的文件夹来重命名为。
000.png是唯一的文件,中间dirrectories中没有。
我一直在尝试使用:
Account
来自另一个主题,但我无法理解脚本的作用。
答案 0 :(得分:0)
@echo off
pushd "C:\Users\test"
for /d %%P in (*) do for /f "delims=" %%F in ('dir /b /s /a-d "%%P\000.png" 2^>NUL'
) do echo rename "%%~fF" "%%~nP%%~xF"
popd
for /d
迭代" C:\ Users \ test"中的所有子文件夹使用%%P
您选择的名字。%%~nP
仅使用~n
修饰符获取文件夹的名称(d1 / d4 / d7)(请参阅for /?)