Command line 批量重命名文件夹中的文件
我有一些以下格式的文件(大约10000个文件)Command line 批量重命名文件夹中的文件,command-line,batch-file,batch-rename,Command Line,Batch File,Batch Rename,我有一些以下格式的文件(大约10000个文件) SDEF-2001-23965-236.pdf SlkF-1991-65-123.pdf 我想检查文件名是否为所需格式,通过从末尾删除4个字符来重命名它 SDEF-2001-23965-236.pdf >>SDEF-2001-23965.pdf SlkF-1991-65-123.pdf >>SlkF-1991-65.pdf 我不知道应该如何创建一个.bat文件来完成我需要的工作。如果需要在DOS中进行“字符串操
SDEF-2001-23965-236.pdf
SlkF-1991-65-123.pdf
我想检查文件名是否为所需格式,通过从末尾删除4个字符来重命名它
SDEF-2001-23965-236.pdf >>SDEF-2001-23965.pdf
SlkF-1991-65-123.pdf >>SlkF-1991-65.pdf
我不知道应该如何创建一个.bat文件来完成我需要的工作。如果需要在DOS中进行“字符串操作”,以下链接很有用:
如果您有格式为
aaaa bbb cc ddd.ext的*.pdf
文件(4部分+扩展名)
创建名为rn.bat的文件
:
@echo off
set str=%1
for /f "tokens=1,2,3,4 delims=- " %%a in ("%str%") do set p1=%%a&set p2=%%b&set p3=%%c&set p4=%%d
set ext=%str:~-4%
set "result=%p1%-%p2%-%p3%%ext%"
ren %1 %result%
@echo off
for %%i in (%1) do rml.bat %%i
创建名为rnall.bat的文件
:
@echo off
set str=%1
for /f "tokens=1,2,3,4 delims=- " %%a in ("%str%") do set p1=%%a&set p2=%%b&set p3=%%c&set p4=%%d
set ext=%str:~-4%
set "result=%p1%-%p2%-%p3%%ext%"
ren %1 %result%
@echo off
for %%i in (%1) do rml.bat %%i
然后,在命令行中输入命令:rnall*.pdf
这不是最好的代码,你可以使用函数来做得更好我写了一些东西,比如说@echo off SETLOCAL enabledelayedexpansion FOR%%A IN(*.pdf)do(set st2=“%%A”set st1=%st2:~0,-8%echo REN%%A%st1%)GOTO:eof pause但set st2=“%%A”不起作用,我是通过回声找到的command@ghasedak:在本例中,您正在启用延迟扩展,但您没有使用它,为什么?我的意思是,%st2:~0,-8%
应该是!st2:~0,-8代码>和%st1%
应该是!st1代码>。