删除姓名列表的一部分

删除姓名列表的一部分

我有一些文件,每个文件都有不同的名称,但它们末尾都有相同的“-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

在重命名文件末尾的文件扩展名前添加一些内容

(更改fpartmp3path以匹配您的使用需要。是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

相关内容