使用批处理、VBSCRIPT或BASH SHELL重命名多个文件
我在文件夹a中有许多文件,我需要做的是将文件名重命名为不同的模式示例:使用批处理、VBSCRIPT或BASH SHELL重命名多个文件,bash,vbscript,batch-file,Bash,Vbscript,Batch File,我在文件夹a中有许多文件,我需要做的是将文件名重命名为不同的模式示例:TTFILE-201109265757.dattoYTL.MSZSH1.ch1.201109265757_0001.0001.dat 其中,YTL、MSZSH1、ch1是前缀,然后是文件名,然后是序列号 文件名模式应该是这样的:YTL.MSZSH1.ch1.filename\u SequenceNumber.SequenceNumber其中SequenceNumber是4位数字,在9999之后重置为0。这个小bash脚本应该完
TTFILE-201109265757.dat
toYTL.MSZSH1.ch1.201109265757_0001.0001.dat
其中,YTL、MSZSH1、ch1是前缀,然后是文件名,然后是序列号
文件名模式应该是这样的:
YTL.MSZSH1.ch1.filename\u SequenceNumber.SequenceNumber
其中SequenceNumber
是4位数字,在9999之后重置为0。这个小bash脚本应该完成以下工作:)只需使用参数列表中有问题的文件调用它,或者将$@
替换为$(ls)
#/bin/bash
计数器=1
prefix=“YTL.MSZSH1.ch1。”
对于“$@”中的i;做
文件=$(基本名称“$i”)
计数器=$(printf“%04d”$计数器)
mv“$i”“$前缀${file/TTFILE-/}$counter.$counter.dat”
计数器=$($计数器+1))
完成
这个小bash脚本应该可以完成这项工作:)只需使用参数列表中有问题的文件调用它,或者将$@
替换为$(ls)
#/bin/bash
计数器=1
prefix=“YTL.MSZSH1.ch1。”
对于“$@”中的i;做
文件=$(基本名称“$i”)
计数器=$(printf“%04d”$计数器)
mv“$i”“$前缀${file/TTFILE-/}$counter.$counter.dat”
计数器=$($计数器+1))
完成
在Windows环境中,我将运行以下脚本:
@echo off
setlocal EnableDelayedExpansion
pushd %1
set c=0
for /r %%i in ( %2-*.dat ) do (
set filename=%%~ni
set digits=!filename:%2-=!
ren "%%i" %3.%4.%5.!digits!_!c.!c!.dat
set /a c+=1
if !c! equ 10000 set c=0
)
popd
要运行它:script.cmd“D:\Test Area”TTFILE YTL MSZSH1 ch1
,其中D:\Test Area
是包含.dat
文件的目录,以下参数是要使用的前缀
如果
D:\Test Area
包含子目录,则其中包含的.dat
文件也将被重命名,但序列号不会在两个不同的子文件夹之间重置。在Windows环境中,我将运行以下脚本:
@echo off
setlocal EnableDelayedExpansion
pushd %1
set c=0
for /r %%i in ( %2-*.dat ) do (
set filename=%%~ni
set digits=!filename:%2-=!
ren "%%i" %3.%4.%5.!digits!_!c.!c!.dat
set /a c+=1
if !c! equ 10000 set c=0
)
popd
要运行它:script.cmd“D:\Test Area”TTFILE YTL MSZSH1 ch1
,其中D:\Test Area
是包含.dat
文件的目录,以下参数是要使用的前缀
如果
D:\Test Area
包含子目录,则其中包含的.dat
文件也将被重命名,但序列号不会在两个不同的子文件夹之间重置。这是vbscript中的方式
Dim objFSO,myFolder,objFolder,colFiles,objFile,newName,i,n
set sh=createobject("wscript.shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
myFolder = "C:\users\eng\desktop\Scripts" '' here you can write the path for your folder
Set objFolder = objFSO.GetFolder(myFolder)
Set colFiles = objFolder.Files
i=0:n="0000"
For Each objFile in colFiles
if Not instr(1,objFile.name,"YTL.MSZSH1.ch1.",1) > 0 then ''check if the file name change.this step to avoid change file name again after we rename
newName=replace(objFile.Name,"TTFILE-","YTL.MSZSH1.ch1.") ''replace "TTFILE-" with "YTL.MSZSH1.ch1." in the file name
newName=replace(newName,right(newName,4),"_"&n&"."&n&".dat") ''replace in modefiy newName ".dat" to "_0000.0000.dat" in the file name
objFSO.getfile(objFile).name=newName ''change the file name with newName
sh.popup objfile,1,"In_The_Name_Of_Allah"
i=i+1
If i < 10 Then
n= CStr("000" & i)
ElseIf i < 100 Then
n= CStr("00" & i)
ElseIf i < 1000 Then
n= CStr("0" & i)
Else
n= i
End If
End If
Next
wscript.quit
Dim objFSO,myFolder,objFolder,colFiles,objFile,newName,i,n
set sh=createobject(“wscript.shell”)
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
myFolder=“C:\users\eng\desktop\Scripts”“”您可以在此处为文件夹写入路径
设置objFolder=objFSO.GetFolder(myFolder)
设置colFiles=objFolder.Files
i=0:n=“0000”
对于colFiles中的每个objFile
如果instr(1,objFile.name,“YTL.MSZSH1.ch1.”,1)>0,则“检查文件名是否更改。此步骤可避免重命名后再次更改文件名
newName=replace(objFile.Name,“TTFILE-”,“YTL.MSZSH1.ch1.”)将文件名中的“TTFILE-”替换为“YTL.MSZSH1.ch1.”
newName=replace(newName,right(newName,4),“”&n&“&n&”&n&“.dat”)“在mode中替换文件名中的newName.dat”到“0000.0000.dat”
objFSO.getfile(objFile).name=newName''用newName更改文件名
sh.popup objfile,1,“以真主的名义”
i=i+1
如果我<10,那么
n=CStr(“000”和i)
如果我小于100那么
n=CStr(“00”和i)
如果我小于1000
n=CStr(“0”和i)
其他的
n=i
如果结束
如果结束
下一个
wscript.quit
这是vbscript中的方法
Dim objFSO,myFolder,objFolder,colFiles,objFile,newName,i,n
set sh=createobject("wscript.shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
myFolder = "C:\users\eng\desktop\Scripts" '' here you can write the path for your folder
Set objFolder = objFSO.GetFolder(myFolder)
Set colFiles = objFolder.Files
i=0:n="0000"
For Each objFile in colFiles
if Not instr(1,objFile.name,"YTL.MSZSH1.ch1.",1) > 0 then ''check if the file name change.this step to avoid change file name again after we rename
newName=replace(objFile.Name,"TTFILE-","YTL.MSZSH1.ch1.") ''replace "TTFILE-" with "YTL.MSZSH1.ch1." in the file name
newName=replace(newName,right(newName,4),"_"&n&"."&n&".dat") ''replace in modefiy newName ".dat" to "_0000.0000.dat" in the file name
objFSO.getfile(objFile).name=newName ''change the file name with newName
sh.popup objfile,1,"In_The_Name_Of_Allah"
i=i+1
If i < 10 Then
n= CStr("000" & i)
ElseIf i < 100 Then
n= CStr("00" & i)
ElseIf i < 1000 Then
n= CStr("0" & i)
Else
n= i
End If
End If
Next
wscript.quit
Dim objFSO,myFolder,objFolder,colFiles,objFile,newName,i,n
set sh=createobject(“wscript.shell”)
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
myFolder=“C:\users\eng\desktop\Scripts”“”您可以在此处为文件夹写入路径
设置objFolder=objFSO.GetFolder(myFolder)
设置colFiles=objFolder.Files
i=0:n=“0000”
对于colFiles中的每个objFile
如果instr(1,objFile.name,“YTL.MSZSH1.ch1.”,1)>0,则“检查文件名是否更改。此步骤可避免重命名后再次更改文件名
newName=replace(objFile.Name,“TTFILE-”,“YTL.MSZSH1.ch1.”)将文件名中的“TTFILE-”替换为“YTL.MSZSH1.ch1.”
newName=replace(newName,right(newName,4),“”&n&“&n&”&n&“.dat”)“在mode中替换文件名中的newName.dat”到“0000.0000.dat”
objFSO.getfile(objFile).name=newName''用newName更改文件名
sh.popup objfile,1,“以真主的名义”
i=i+1
如果我<10,那么
n=CStr(“000”和i)
如果我小于100那么
n=CStr(“00”和i)
如果我小于1000
n=CStr(“0”和i)
其他的
n=i
如果结束
如果结束
下一个
wscript.quit
为什么TTFILE-
不显示在新名称中?为什么TTFILE-
不显示在新名称中?