顺便说一句,我用的是Windows 7。
我想遍历一个文件夹和它的所有子文件夹,保持当前文件的计数器变量,并将其重命名为$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)