如何将文件名更改为它们所在目录的名称?

时间:2017-08-22 16:03:26

标签: batch-file vbscript rename file-rename batch-rename

我有一个名为“Projects”的文件夹。在该文件夹中,我有多个文件夹用于我的音乐项目,它们具有不同的名称,并且在每个文件夹中我都有一个FL Studio项目文件(.flp),以及项目的数据,如Wave和MP3文件。但是所有FLP文件都有默认名称(“untitled.flp”)。有没有办法将文件名更改为它们所在目录的名称?

我以为我可以制作批处理或VBS文件,但我不确定应该如何编程呢。

伪批次代码:

:loop
for each "untitled.flp" in "D:\Google Drive\Projects" goto change
exit
:change
set variable="untitled.flp directory"
ren "untitled.flp" %variable%
goto loop

我正在运行Windows 10。

1 个答案:

答案 0 :(得分:3)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /r "%sourcedir%" %%a IN (untitled.flp) DO IF EXIST "%%a" (
 FOR %%s IN ("%%~dpa.") DO ECHO REN "%%a" "%%~nxs.flp"
)

GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

为了测试目的,所需的REN命令仅为ECHO在您确认命令正确后,将ECHO REN更改为REN以实际重命名文件。

第一个for将整个树中的目录名分配给%%a并附加文件名。 if将文件不存在的目录名称和内部if构造%%a的完整路径名并附加.,将整个结果名称视为文件名;然后ren命令将找到的文件的完整文件名重命名为文件父目录名的名称和扩展名部分。