批量:根据 dir 命令重命名文件
Batch : Rename a file according to the dir command
我无法将文件重命名为目录的结果。
示例:
我在 C 盘中有一个名为 candidate 的文件夹,在 candidate 文件夹中有以下文件:
- something.txt
- everything.doc
- onething.bmp
当我 dir 时,我将获得文件列表。
文件夹中将始终有 1 个 txt 文件和 1 个 bmp 文件
如果我使用 dir *.txt
,我该如何重命名 BMP 文件,使其与 TXT 文件同名
在上面的示例中,如何将 onething.bmp 更改为 something.bmp
提前感谢您的任何回答
这应该有效:
@ECHO OFF
FOR %%X in ("*.txt") DO (SET txtName=%%X)
FOR %%X in ("*.bmp") DO (SET bmpName=%%X)
FOR /F "tokens=1 delims=." %%X IN ("%txtName%") DO (
REN %bmpName% %%X.bmp
)
这仅在 bat 文件与 txt 和 bmp 文件位于同一文件夹中时才有效。如果它位于其他地方,您将不得不调整路径。
如果文件夹中有多个 bmp/txt 个文件,则只会处理 "last" 个文件。
for %%X in ("*.txt") do (
for %%Y in ("*.bmp") do (
echo ren %%Y %%~nX%%~xY
)
)
如果输出是您需要的,请删除 echo
。
有关 %%~nX
等的解释,请参阅 for /?
我无法将文件重命名为目录的结果。 示例:
我在 C 盘中有一个名为 candidate 的文件夹,在 candidate 文件夹中有以下文件:
- something.txt
- everything.doc
- onething.bmp
当我 dir 时,我将获得文件列表。
文件夹中将始终有 1 个 txt 文件和 1 个 bmp 文件
如果我使用 dir *.txt
,我该如何重命名 BMP 文件,使其与 TXT 文件同名在上面的示例中,如何将 onething.bmp 更改为 something.bmp
提前感谢您的任何回答
这应该有效:
@ECHO OFF
FOR %%X in ("*.txt") DO (SET txtName=%%X)
FOR %%X in ("*.bmp") DO (SET bmpName=%%X)
FOR /F "tokens=1 delims=." %%X IN ("%txtName%") DO (
REN %bmpName% %%X.bmp
)
这仅在 bat 文件与 txt 和 bmp 文件位于同一文件夹中时才有效。如果它位于其他地方,您将不得不调整路径。 如果文件夹中有多个 bmp/txt 个文件,则只会处理 "last" 个文件。
for %%X in ("*.txt") do (
for %%Y in ("*.bmp") do (
echo ren %%Y %%~nX%%~xY
)
)
如果输出是您需要的,请删除 echo
。
有关 %%~nX
等的解释,请参阅 for /?