我有一些文件,每个文件都有不同的名称,但它们末尾都有相同的“-statement”,如下所示:
flower-statement.mp3
leave-statement.mp3
ball-statement.mp3
goal-statement.mp3
所以我想删除这个:-statement
那可能吗?
答案1
为什么不能像这样使用批处理来完成此操作,而无需任何特殊程序?根据我的测试,这将完全按照您的要求执行操作,即解析出-statement
文件名的一部分,然后重命名每个文件而不留下文件的其他部分。这对于.mp3
特定文件夹中的所有文件都适用。
在下面的示例中,我只需C:\Users\User\Desktop\Test\*.mp3
将文件夹名称放在该位置即可。将其保存到文本文件并重命名为batch.cmd
或类似名称。然后只需双击运行它即可重命名该文件夹中的文件并解析其中-statement
的一部分。
您还可以使该脚本隐式运行您将其复制到的目录,并*.mp3
从那里使用而不是完整路径。
显式脚本(指定 *.mp3 所在的目录)
@ECHO ON
FOR %%A IN ("C:\Users\User\Desktop\Test\*.mp3") DO (
CALL :RenameFiles "%%~A" "%%~NXA"
)
GOTO EOF
:RenameFiles
SET fname=%~2
SET renname=%fname:-statement=%
REN "%~1" "%renname%"
GOTO EOF
隐式脚本(复制到 *.mp3 所在目录然后运行)
@ECHO ON
FOR %%A IN ("*.mp3") DO (
CALL :RenameFiles "%%~A" "%%~NXA"
)
GOTO EOF
:RenameFiles
SET fname=%~2
SET renname=%fname:-statement=%
REN "%~1" "%renname%"
GOTO EOF
在重命名文件末尾的文件扩展名前添加一些内容
(更改fpart
和mp3path
以匹配您的使用需要。是fpart
您需要添加的,是文件mp3path
所在的文件夹MP3
。)
笔记: 这仍然假设 MP3 文件的-statement
文件名中有要被删除的内容。
EXCPLICIT SCRIPT(带解析文件名字符)
@ECHO ON
SET mp3path=C:\Users\User\Desktop\Test
SET fpart=_something
FOR /F %%A IN ('DIR /B "%mp3path%\*.mp3"') DO (
CALL :RenameFiles "%%~FPA" "%%~NA" "%%~XA"
)
GOTO EOF
:RenameFiles
SET fname=%~2
SET ext=%~3
SET renname=%fname:-statement=%
REN "%~1" "%renname%%fpart%%ext%"
GOTO EOF
明确的脚本(不解析,只添加文件名字符)
@ECHO ON
SET mp3path=C:\Users\User\Desktop\Test
SET fpart=_something
FOR /F %%A IN ('DIR /B "%mp3path%\*.mp3"') DO (
CALL :RenameFiles "%%~FPA" "%%~NA" "%%~XA"
)
GOTO EOF
:RenameFiles
SET fname=%~2
SET ext=%~3
REN "%~1" "%fname%%fpart%%ext%"
GOTO EOF