我需要创建一个批处理文件,它将从文件名中删除前四个字符并转储其余字符。所以基本上我可能有文件“1234_whatever.txt”,我需要它将文件重命名为“1234.txt”文件名的格式将始终相同,但文件名将始终更改。最重要的是,我需要这一切都是自动的,无需用户干预。任何帮助将不胜感激
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=."
FOR %%a IN ("%sourcedir%\*_*.*") DO (
FOR /f "tokens=1*delims=_" %%b IN ("%%a") DO IF NOT "%%c"=="" (
ECHO(REN "%%a" %%~nb%%~xa
)
)
GOTO :EOF
您需要将sourcedir
的设置更改为您的目录名。
为了测试目的,所需的REN命令仅为ECHO
。在您确认命令正确无误后,将ECHO REN
更改为REN
以实际重命名文件。
请注意,longfilenames的SHORT文件名通常包含下划线,并且会被dir
命令命中。因此需要if not "%%c==""
如果您只想处理*_*.*
个文件,可以将*_*.txt
更改为.txt
。