批处理遍历子持有人并重命名文件



我想遍历一个文件夹和它的所有子文件夹,保持当前文件的计数器变量,并将其重命名为$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 cnt=10000
FOR /R "%rootdir%" %%f IN (*) DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  RENAME "%%f" "!cnt:~1!%%~nxf"
  ENDLOCAL
)
SETLOCAL ENABLEDELAYEDEXPANSION 
set count=1
for /r .folder %%f IN (*.*) do (
    ren "%%f" "!count!%%~nf%%~xf"
    set /a count=!count!+1)

相关内容

  • 没有找到相关文章

最新更新