Windows 使用索引(CMD)重命名文件

Windows 使用索引(CMD)重命名文件,windows,cmd,Windows,Cmd,我有很多文件,我想把它们重命名为像Bild(1).jpg,Bild(2).jpg,Bild(3).jpg 我知道如何在CMD中重命名一个文件: ren**Bild(1.jpg) 但是我怎样才能在数百个文件中实现这一点呢?如果你知道python或PHP之类的语言。您可以通过使用任何循环来完成。 读取该目录中的所有文件,然后在该目录上循环。所有文件都将被重命名。如果重命名一个文件,请执行以下步骤。 步骤: 1->按crrl+R 2->键入cmd,然后按Enter键 3->转到文件所在的路径。然后在

我有很多文件,我想把它们重命名为像
Bild(1).jpg
Bild(2).jpg
Bild(3).jpg

我知道如何在CMD中重命名一个文件:

ren**Bild(1.jpg)

但是我怎样才能在数百个文件中实现这一点呢?

如果你知道python或PHP之类的语言。您可以通过使用任何循环来完成。 读取该目录中的所有文件,然后在该目录上循环。所有文件都将被重命名。如果重命名一个文件,请执行以下步骤。 步骤: 1->按crrl+R 2->键入cmd,然后按Enter键 3->转到文件所在的路径。然后在下面键入此命令。您的文件将被重命名

rename test.txt text1.txt

你的问题不是很清楚,但我认为你想要什么:

@echo off
setlocal enabledelayedexpansion
set num=0
for %%i in (*.jpg) do (
  set /a num+=1
  echo ren "%%~i" "Bild(!num!)%%~xi"
)
现在只需执行
echo
命令
ren
,要真正执行重命名,您需要从最后一行中删除
echo
,以执行重命名


另外请注意,这不会递归搜索子目录,因为这不是您的问题的一部分。

@AntonSchrage除了它们当前在cmd中出现的顺序之外,您是否不关心它们的命名顺序

我猜你已经把它们按字母顺序分类了

我们可以更安全地使用
MKLINK
创建硬链接,而不是
ren
对文件进行命名,然后如果它们的重命名方式有问题,您可以与我们进一步讨论订单

如果没有问题,您可以删除原始文件并使用硬链接文件,或者使用下面命令的重命名版本

直接在
CMD
CLI窗口中创建硬链接 直接在
CMD
CLI窗口中重命名文件 注意:硬链接的外观和行为类似于单独的文件,但它们是指向原始文件的指针,因此不会占用磁盘上的额外空间

您可以使用硬链接来检查任何应用程序/网页/等中的文件内容,并确保它们按预期显示

这样,如果使用硬链接的顺序与您期望的不同,您就不会丢失原始命名,只需删除硬链接即可

如果您确信它们符合您的要求,您可以删除原始文件,硬链接将永久成为文件句柄。

或者,您可以删除链接并使用我在上面发布的重命名版本重命名文件,以直接重命名它们。


我可以向你推荐吗

首先计算这些文件,然后循环它们以重命名已排序的文件

另外,考虑到以零开头


@echo off&&setlocal enabledelayedexpansion
对于/f%%i in('dir/o-d/on/b“*.jpg”2^>num^ | find”“/v/c'),请设置%i
对于/f^tokens^=*%f in('where.::.jpg'),请重命名“%%~f”“Bild(!\u cnt!).jpg”&设置/a\u cnt-=1

  • ::或者,由零引导您的文件::

@echo off&&setlocal enabledelayedexpansion
对于/f%%i in('dir/o-d/on/b“*.jpg”2^>num^ | find”“/v/c'),请设置“\u cnt=%%i”
对于('where.:*.jpg')中的/f^tokens^=*%f,请设置“\u led=00000!\u cnt!”&&(
重命名“%%f”图片(!\u led:~-5!).jpg“&set/a”\u cnt-=1”)

在第一个循环中,使用dir+find/v/c计算文件夹中的文件总数

在您可以重命名的下一个循环中,使用_cnt减少_cnt变量(`set“_cnt-=1”),循环本身更新_led变量,并通过设置_led(零+_cnt)将0000添加到所有操作中

因此,您可以通过连接00000+\u cnt来定义用于重命名的位数。
设置_led=_发光二极管:~-5将采用/使用最后5位数字来重命名文件


  • 或者,与上述完全不同的事情,而且,我的英语有限使我无法向您清楚地解释:)

有关命令的详细信息,可以尝试按以下命令行获取所有命令帮助文本:

%temp%\all help.txt”(for/?&set/?&dir/?&rename/?)和“%temp%\all help.txt”
雷:对不起,英语。。。


您想重命名数百个文件,而不定义任何规则,哪一个原始文件将获得哪一个新名称?是的,第一个文件应命名为ND Bild(1),第二个Bild(2),依此类推。您最好编写一个小批量脚本,因为使用一行cmd命令看起来不太好看。什么是“第一个”?cmd.exe和explorer.exe对文件排序有不同的想法。这是cmd.exe找到的第一个文件。我知道这一点,但我如何才能在不键入数百次的情况下对数百个文件执行此操作?您是否意识到,这几乎违背了批处理文件自动重命名的全部目的?
MD "%TEMP%\Hard_Links\"
SET "#="
FOR %_ IN ( "C:\Your\Path\To\Files\*.jpg" ) DO (
  CALL SET /A "#=#+1"
  CALL MKLINK /H "%TEMP%\Hard_Links\Bild(%#%).jpg" "%~f_" )

SET "#="
FOR %_ IN ( "C:\Your\Path\To\Files\*.jpg" ) DO (
  CALL SET /A "#=#+1"
  CALL REN "%~f_" "Bild(%#%).jpg" )