使用文件中的字符串重命名文件

时间:2017-05-12 00:48:18

标签: file batch-file rename

我有一个名为AURNTRNA20170509V141的文件,我想用文件中的字符串重命名 字符串00AURNTRNA20170509V141 01RNET 201705090010020030000 7158254 562009 AUD-00000000000000000000000.020 200300009502015 03955711000283 01RNET 201705090010020030000 2347394 位于文件的第一行 批处理文件和目标文件都将位于同一目录d:\ abc

从文件中提取:

AURNTRNA.20170509.V141.txt

期望的输出:

Sheet6.ChartObjects.Delete

1 个答案:

答案 0 :(得分:1)

重命名一个文件似乎需要做很多工作!你不能打开它复制第一行关闭它并用编辑过的粘贴重命名。

这里说的是使用关于您提供的结构的假设信息的一些解决方案:

@Echo Off
If Not Exist "D:\abc\psgl_extract.txt" GoTo :EOF
Set/P "_S="<"D:\abc\psgl_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:\abc\psgl_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")