我有一个名为psgl_extract.txt
的文件,我想用文件中的字符串重命名。
字符串AURNTRNA20170509V141
位于文件的第一行。
批处理文件和目标文件将位于同一目录中,d:\abc
从文件中提取:
00AURNTRNA20170509V141
01RNET 201705090010020030000 7158254 562009 AUD-00000000000000000000000.020 200300009502015 03955711000283
01RNET 201705090010020030000 2347394
期望输出:
AURNTRNA.20170509.V141.txt
重命名一个文件似乎有很多工作!你能不能打开它复制第一行关闭它并使用编辑过的粘贴重命名。
也就是说,这里有一些解决方案,使用有关您提供的结构的假设信息:
@Echo Off
If Not Exist "D:abcpsgl_extract.txt" GoTo :EOF
Set/P "_S="<"D:abcpsgl_extract.txt"
For /F "Tokens=1 Delims=0123456789" %%A In ("%_S%") Do (Set "_A=%%A"
For /F "Tokens=*" %%B In ('Call Echo^=%%_S:*%%A^=%%') Do Set "_N=%%B")
Ren "D:abcpsgl_extract.txt" "%_A%.%_N:~,8%.%_N:~8%.txt"
如果同一目录中有多个.txt文件,则所有文件都具有相同的假定结构,则可以使用它:
@Echo Off
SetLocal EnableDelayedExpansion
For %%A In (*.txt) Do (
Set/P "_S="<"%%A"
For /F "Tokens=1 Delims=0123456789" %%B In ("!_S!") Do (Set "_A=%%B"
For /F "Tokens=*" %%C In ('Echo^=!_S:*%%B^=!') Do Set "_N=%%C")
Ren "%%A" "!_A!.!_N:~,8!.!_N:~8!%%~xA")