file - 批量遍历子文件夹并重命名文件

标签 file batch-file rename directory traversal

我想遍历一个文件夹及其所有子文件夹,保留当前文件的计数器变量并将其重命名为 $counter$ExistingFileName。
例如。

$count = 1;  
foreach $file in $folder  
{  
  $file.name = $count + $file.name;  
  $count++;  
}

能回答这个问题的人就是我的英雄! :)
顺便说一句,我正在使用 Windows 7。

最佳答案

好吧,当你在思考我对你帖子的评论中的问题时(或者你可能还在回到这个网站阅读它们),这是我的试拍:

@ECHO OFF
SET "rootdir=%~1"
IF "%rootdir%"=="" SET rootdir=.
SET cnt=0
FOR /R "%rootdir%" %%f IN (*) DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  RENAME "%%f" "!cnt!%%~nxf"
  ENDLOCAL
)

这将通过简单地在名称前加上数字来重命名您的文件,如下所示:

1file.txt
2program.exe
...

如果你喜欢,你可以这样做:

00001file.txt
00002program.exe

为此,您需要对上述脚本进行两​​处更改(以粗体突出显示):

@ECHO OFF
SET "rootdir=%~1"
IF "%rootdir%"=="" SET rootdir=.
SET <b>cnt=10000</b>
FOR /R "%rootdir%" %%f IN (*) DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  RENAME "%%f" "<b>!cnt:~1!</b>%%~nxf"
  ENDLOCAL
)

关于file - 批量遍历子文件夹并重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840450/

相关文章:

WordPress 重命名主题文件夹

java - Byte[] 和 java.lang.OutOfMemoryError 按位读/写文件

windows - 在批处理脚本中循环遍历文件名

windows - 使用Windows批处理文件将具有相同文件名的不同文件夹中的多个文件复制到一个公共(public)文件夹中

r - dplyr 重命名 plyrmr 中的等价物

bash - 删除 bash 中的双重扩展名

c# - 在 C# 中创建 RTF 文件的正确方法是什么?

Perl脚本从多个txt文件中读取和打印行?

javascript - 在浏览器中打开文件时重命名文件

batch-file - 批处理文件不能处理大数吗?