编写批处理脚本:提取CAM文件内容重命名后复制文件
修改后的BAT脚本:实现.CAM文件重命名后复制
以下脚本会先遍历指定目录下的所有.CAM文件,提取每个文件第5行中以W2开头、后跟任意数字、以504结尾的字符串作为新文件名,完成重命名后再执行原有的复制操作:
@ECHO OFF SETLOCAL EnableDelayedExpansion :: 定义源文件所在目录 SET "sourceDir=M:\1101\Tipo\NT" :: 遍历目录下所有.CAM文件 FOR %%F IN ("%sourceDir%\*.CAM") DO ( :: 读取文件第5行内容 SET "line5=" FOR /F "skip=4 delims=" %%L IN ("%%F") DO ( IF NOT DEFINED line5 SET "line5=%%L" ) :: 从第5行提取符合格式的字符串(W2开头、数字结尾504) SET "newName=" FOR /F "tokens=*" %%S IN ('echo !line5! ^| findstr /R "W2[0-9]*504"') DO ( SET "newName=%%S" ) :: 执行重命名(仅当提取到有效名称时) IF DEFINED newName ( RENAME "%%F" "!newName!.CAM" ECHO 已重命名:"%%~nxF" → "!newName!.CAM" ) ELSE ( ECHO 警告:文件"%%~nxF"的第5行未找到符合要求的字符串,跳过重命名 ) ) :: 执行复制操作 ECHO 开始复制文件... copy "%sourceDir%\*" K:\ copy "%sourceDir%\*" M:\1101\Tipo PAUSE ENDLOCAL
关键说明
SETLOCAL EnableDelayedExpansion:启用延迟变量扩展,确保循环内的变量赋值能正常读取skip=4:通过跳过前4行,精准读取文件的第5行内容findstr /R "W2[0-9]*504":使用正则表达式匹配目标格式的字符串,确保只提取符合要求的文件名- 重命名操作完成后再执行复制,保证复制的是更新后的文件
内容的提问来源于stack exchange,提问作者user22549576
相关产品推荐
相关产品推荐

