关于批量删除文件名中特定字符串前的内容批处理改进

我在网上找了些,自己添加了个手动输入字符如下:
@echo off
setlocal enabledelayedexpansion
echo "请输入要删除哪个字符串前的内容"
set /p str=
setlocal enabledelayedexpansion
FOR %%F IN (*%str%*.*) DO (
SET FileName=%%~nF
SET FileName=!FileName:*%str%=!
SET FileName=!FileName!%%~xF
ECHO !FileName!
RENAME %%F !FileName!
)
ENDLOCAL

如上,但有个缺点,这个批处理在删除时会把我指定的字符一起删除。比如我重命名001abc011.mp4、002abc012.mp4文件时,指定abc字符,但批处理会把abc一起删除,变成011.mp4、012.mp4。而我想保留abc字符只删除前面的,变成abc011.mp4、abc012.mp4,不知怎么改进这个批处理呢?不然又要多一道加前缀的工序,好麻烦……自己还没学编程什么的……虚心求教,不过没财富值了……所以见谅_(:3」∠)_

@echo off
setlocal enabledelayedexpansion
set /p str=请输入要删除哪个字符串前的内容:
for %%i in ("*%str%*") do (
    set "FileName=%%i"
    set "FileName=!FileName:*%str%=%str%!"
    echo !FileName!
    ren "%%i" "!FileName!"
)
pause

温馨提示:答案为网友推荐,仅供参考
相似回答