Batch file 如何在批处理文件中重命名文件?

Batch file 如何在批处理文件中重命名文件?,batch-file,Batch File,在文件夹中,我有一个文件名为: 66-1-194-111-F.tiff 66-1-194-111-F.tab 66-1-194-111-F.tfw 66-1-194-111-R.tiff 66-1-194-111-R.tab 66-1-194-111-R.tfw 66-1-194-111-G.tiff 66-1-194-111-G.tab 66-1-194-111-G.tfw **** 66-1-194-111可以更改。我想重命名这个文件。如果名称中的最后一个符号IfF我想设置文件名66-

在文件夹中,我有一个文件名为:

66-1-194-111-F.tiff
66-1-194-111-F.tab
66-1-194-111-F.tfw

66-1-194-111-R.tiff
66-1-194-111-R.tab
66-1-194-111-R.tfw

66-1-194-111-G.tiff
66-1-194-111-G.tab
66-1-194-111-G.tfw
****
66-1-194-111
可以更改。我想重命名这个文件。如果名称中的最后一个符号If
F
我想设置文件名
66-1-194-111-Q
。如果
R
我想设置文件名为
66-1-194-111-W


如何使用此if语句重命名文件?

如果文件的名称如图所示

ren "*-F.*" "*-Q.*"
只需确保以适当的方式进行重命名,以避免混合不同的文件集

对于“自动化”方式,您可以对此进行调整

@echo off
    setlocal enableextensions

    for %%a in ( "F Q" "R W" ) do for /f "tokens=1,2" %%b in (%%a) do (
        echo ren "*-%%b.*" "*-%%c.*"
    )

    endlocal

请注意,
ren
行仅回显到控制台。如果输出正确,请删除echo以重命名文件。

如果文件命名如图所示

ren "*-F.*" "*-Q.*"
只需确保以适当的方式进行重命名,以避免混合不同的文件集

对于“自动化”方式,您可以对此进行调整

@echo off
    setlocal enableextensions

    for %%a in ( "F Q" "R W" ) do for /f "tokens=1,2" %%b in (%%a) do (
        echo ren "*-%%b.*" "*-%%c.*"
    )

    endlocal

请注意,
ren
行仅回显到控制台。如果输出正确,请删除echo以重命名文件。

如果文件命名如图所示

ren "*-F.*" "*-Q.*"
只需确保以适当的方式进行重命名,以避免混合不同的文件集

对于“自动化”方式,您可以对此进行调整

@echo off
    setlocal enableextensions

    for %%a in ( "F Q" "R W" ) do for /f "tokens=1,2" %%b in (%%a) do (
        echo ren "*-%%b.*" "*-%%c.*"
    )

    endlocal

请注意,
ren
行仅回显到控制台。如果输出正确,请删除echo以重命名文件。

如果文件命名如图所示

ren "*-F.*" "*-Q.*"
只需确保以适当的方式进行重命名,以避免混合不同的文件集

对于“自动化”方式,您可以对此进行调整

@echo off
    setlocal enableextensions

    for %%a in ( "F Q" "R W" ) do for /f "tokens=1,2" %%b in (%%a) do (
        echo ren "*-%%b.*" "*-%%c.*"
    )

    endlocal


请注意,
ren
行仅回显到控制台。如果输出正确,请删除
echo
以重命名文件。

那么对于创建批处理文件所需的每一组文件?@KliverMax:不,每一组文件只需一行,或一个
循环预定义变量,或。。。。但正如前面所说的,只是要确保在重命名时避免冲突。如果将F重命名为Q,并且存在Q文件,则现在无法将这两组文件分开。确保对仍然不存在的内容进行了所有重命名,为以下重命名留出空间(可用字母)。@KliverMax:请参阅更新的答案。这只是一种方法。这取决于你的真实文件名。我把你的代码放在了bat文件中。将bat文件复制到“我的文件”文件夹中。但当我开始使用bat文件时?n控制台我收到一条消息说找不到文件。@klivermax:test在您的文件夹中
dir“*-f.*”
找到您的文件。如果有,测试更新的代码。我已经在文件掩码中添加了引号(在本例中,它们不是必需的,但是…),并确保启用了命令扩展名(默认情况下,它们是启用的,但是…),因此对于创建批处理文件所需的每一组文件?@KliverMax:不,每一组文件只需一行,或者对于
循环预定义变量只需一个
,或者。。。。但正如前面所说的,只是要确保在重命名时避免冲突。如果将F重命名为Q,并且存在Q文件,则现在无法将这两组文件分开。确保对仍然不存在的内容进行了所有重命名,为以下重命名留出空间(可用字母)。@KliverMax:请参阅更新的答案。这只是一种方法。这取决于你的真实文件名。我把你的代码放在了bat文件中。将bat文件复制到“我的文件”文件夹中。但当我开始使用bat文件时?n控制台我收到一条消息说找不到文件。@klivermax:test在您的文件夹中
dir“*-f.*”
找到您的文件。如果有,测试更新的代码。我已经在文件掩码中添加了引号(在本例中,它们不是必需的,但是…),并确保启用了命令扩展名(默认情况下,它们是启用的,但是…),因此对于创建批处理文件所需的每一组文件?@KliverMax:不,每一组文件只需一行,或者对于
循环预定义变量只需一个
,或者。。。。但正如前面所说的,只是要确保在重命名时避免冲突。如果将F重命名为Q,并且存在Q文件,则现在无法将这两组文件分开。确保对仍然不存在的内容进行了所有重命名,为以下重命名留出空间(可用字母)。@KliverMax:请参阅更新的答案。这只是一种方法。这取决于你的真实文件名。我把你的代码放在了bat文件中。将bat文件复制到“我的文件”文件夹中。但当我开始使用bat文件时?n控制台我收到一条消息说找不到文件。@klivermax:test在您的文件夹中
dir“*-f.*”
找到您的文件。如果有,测试更新的代码。我已经在文件掩码中添加了引号(在本例中,它们不是必需的,但是…),并确保启用了命令扩展名(默认情况下,它们是启用的,但是…),因此对于创建批处理文件所需的每一组文件?@KliverMax:不,每一组文件只需一行,或者对于
循环预定义变量只需一个
,或者。。。。但正如前面所说的,只是要确保在重命名时避免冲突。如果将F重命名为Q,并且存在Q文件,则现在无法将这两组文件分开。确保对仍然不存在的内容进行了所有重命名,为以下重命名留出空间(可用字母)。@KliverMax:请参阅更新的答案。这只是一种方法。这取决于你的真实文件名。我把你的代码放在了bat文件中。将bat文件复制到“我的文件”文件夹中。但当我开始使用bat文件时?n控制台我收到一条消息说找不到文件。@klivermax:test在您的文件夹中
dir“*-f.*”
找到您的文件。如果有,测试更新的代码。我已经在文件掩码中添加了引号(在本例中,引号不是必需的,但是…),并确保命令扩展名已启用(默认情况下已启用,但是…)