0x00 目录结构
|-names.txt
|-create.bat
|-tempxxxtemp.pdf
0x01 names.txt内容
tempxxxtemp
丘处机
杨过
郭靖
令狐冲
无崖子
0x02 功能
拷贝若干份模板文件tempxxxtemp.pdf,拷贝的新文件的名称将用以names.txt中每行字符串替换模板文件名中的占位符"xxxx"而得到的字符串。例如names.txt中第2行字符串为丘处机,则拷贝得到的新文件的名称为temp丘处机temp.pdf。names.txt第一行为模板文件名,从第二行开始处理。
0x03 batch script
@echo off &setlocal enabledelayedexpansion
@REM names.txt编码为unicode, UTF-8的Code Page是65001
chcp 65001>null
@REM 读names.txt
for /F "delims=" %%a in (D:\xxx\names.txt) do (
set /A count+=1
set "array[!count!]=%%a"
)
@REM 处理模板文件名
set fileType=.pdf
set templateFileName=!array[1]!!fileType!
set delimiter=xxx
for /f "tokens=1,2 delims=%delimiter%" %%a in ("%templateFileName%") do (
set prefix=%%a
set suffix=%%b
)
@REM 组合新文件命并创建之
for /L %%i in (1,1,%count%) do (
set newFileName=!prefix!!array[%%i]!!suffix!
copy !templateFileName! !newFileName!
)