cmd命令批量修改文件名问题
我有好几十个文件.文件名形如:xxx_1.tet,xxx_2.tet.....xxx_99.tet...xxx_121.tet.现在是想把_1,_99,改成_001,_0...
我有好几十个文件.文件名形如:xxx_1.tet,xxx_2.tet.....xxx_99.tet...xxx_121.tet.
现在是想把_1,_99,改成_001,_099.就是说改成为:xxx_001.tet,xxx_002.tet.....xxx_099.tet.
有知道请写出命令.不甚感激. 展开
现在是想把_1,_99,改成_001,_099.就是说改成为:xxx_001.tet,xxx_002.tet.....xxx_099.tet.
有知道请写出命令.不甚感激. 展开
3个回答
展开全部
分两个CMD命令,第一个为1-9补2个0,即00,第二个为10-99补一个0.
for /L %C in (1,1,9) do ren ????%C.tet ????00%C.tet
for /L %C in (10,1,99) do ren ????%C.tet ????0%C.tet
????是通配符,代表xxx_ ,如果实际文件名不是xxx_ 你对应几个长度就改为几个"?"。
for /L %C in (1,1,9) do ren ????%C.tet ????00%C.tet
for /L %C in (10,1,99) do ren ????%C.tet ????0%C.tet
????是通配符,代表xxx_ ,如果实际文件名不是xxx_ 你对应几个长度就改为几个"?"。
追问
嗯.这样是可以.但是如果没有99个文件的话,这也会执行99次.
还有再请问下.为什么这样修改了后再用copy命令合并,没有按照这文件名的顺序呢?copy要怎么才能按顺序去合并?
追答
99是个变量,有多少个你就写多少个,我是按照你上面给出的例子写的,方便你看明白,自己变通改一下就行了。
copy本身就有按顺序叠加的功能,copy *.tet dest.tet
dest换成你要写入的文件名。
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
cls
@echo off
rem 在文件名称末尾的数字前面填充0/补零/补0使得位数相同/一致
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path=Get-Location;
$ext=@('.tet');
$maxlen=0;
$files=@(dir -liter $path|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
$m=[regex]::match($files[$i].BaseName,'\d+$');
if($m.Success){
if($m.groups[0].length -gt $maxlen){$maxlen=$m.groups[0].length;};
};
};
for($i=0;$i -lt $files.length;$i++){
$newbase=[regex]::replace($files[$i].BaseName,'\d+$',{param($a);$a.groups[0].value.PadLeft($maxlen,'0')});
$newname=$newbase+$files[$i].Extension;
$newfile=$files[$i].Directory.FullName+'\'+$newname;
if($newname -ne $files[$i].Name){
write-host ($files[$i].FullName+' --> '+$newname);
mv -liter $files[$i].FullName $newfile;
};
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哎,才几十个文件,手工修改都改好了。现在的人也太懒了。
可试试 文件批量处理百宝箱V8.0主界面的数字功能卡,勾选数字用0补足位数。
可试试 文件批量处理百宝箱V8.0主界面的数字功能卡,勾选数字用0补足位数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询