在windows中重命名批处理文件
我在谷歌上搜索了不同的方法来重命名批处理文件,但我找不到一种方法来按照我希望的顺序进行重命名。 如果有人能帮助我,我将不胜感激。 我有以下名为的文件:在windows中重命名批处理文件,windows,file,batch-file,batch-processing,batch-rename,Windows,File,Batch File,Batch Processing,Batch Rename,我在谷歌上搜索了不同的方法来重命名批处理文件,但我找不到一种方法来按照我希望的顺序进行重命名。 如果有人能帮助我,我将不胜感激。 我有以下名为的文件: NAME0000.txt NAME0001.txt NAME0002.txt ... NAME0099.txt 对于所有这些文件,我需要将左侧第二个数字中的0替换为1 例: 非常感谢您未经测试 setlocal enableDelayedExpansion for /l %%a in (0;1;200) do ( if %%a lss 10
NAME0000.txt
NAME0001.txt
NAME0002.txt
...
NAME0099.txt
对于所有这些文件,我需要将左侧第二个数字中的0替换为1
例:
非常感谢您未经测试
setlocal enableDelayedExpansion
for /l %%a in (0;1;200) do (
if %%a lss 10 set numb=000%%a
if %%a gtr 10 if %%a lss 100 set numb=00%a
if %%a gtr 100 if %%a lss 1000 set numb=0%a
set file_=NAME!numb!.txt
if exist !file! (
set /a numb2=numb+100
ren NAME!numb!.txt NAME!numb2!.txt
)
)
一个更简单的解决方案是只使用字符串替换:
@ECHO OFF
SetLocal EnableDelayedExpansion
FOR %%A IN ( NAME00*.txt ) DO (
SET OLD_FILENAME=%%A
SET NEW_FILENAME=!OLD_FILENAME:NAME00=NAME01!
REN !OLD_FILENAME! !NEW_FILENAME!
)
您需要在包含要重命名的文件的文件夹中运行此脚本。由于
REN
命令的性质,您不能只在FOR
命令中向fileselectorNAME00*.txt
添加一些路径。如果脚本需要在任意目录下工作,请将此添加到您的问题中。我在谷歌上搜索了一下,发现了这个第三方工具,它可以根据您的需要做一些很棒的事情-
批量重命名工具是一种轻量级但功能强大的文件重命名工具
只要有批量重命名工具,就不需要满足于过于简单的文件重命名工具。它是轻量级的,可疯狂定制的,可移植的,并且确保在任何重命名任务中都能很快完成
批量重命名工具是一个很好的可移植应用程序(如果您渴望上下文菜单集成,可以作为安装版本提供),可以快速完成文件重命名任务。主面板上充满了你可以改变的开关和变量;这绝对不是一个一键式的解决方案
这就是说,一旦你习惯了使用这个界面,它就会变得轻快和非常灵活。开始时,有一个技巧可以帮你省去大量的麻烦:确保在“文件预览”窗口(位于右上角)中突出显示你想要更改的文件,否则你将看不到预览,也不知道你在“控制面板”中所做的更改是否产生了你想要的文件名
点击下面的链接阅读更多内容并获取副本;批量重命名工具是免费的,仅限Windows
谢谢。显然我不是很聪明。在哪里可以设置找到这些文件的路径?我将.bat文件放在文件所在的文件夹中,但没有更改。@Iuli add
pushd c:\somepath
开头
@ECHO OFF
SetLocal EnableDelayedExpansion
FOR %%A IN ( NAME00*.txt ) DO (
SET OLD_FILENAME=%%A
SET NEW_FILENAME=!OLD_FILENAME:NAME00=NAME01!
REN !OLD_FILENAME! !NEW_FILENAME!
)