从文本中提取变量值

时间:2018-02-12 17:16:18

标签: batch-file

它非常复杂....在Windows平台上使用批处理脚本,我需要从输出文件中提取变量字符串,将最终结果编辑为另一个文件。

例如,文件text.log以这种方式填充给我:

C:Windows\xfile\CODSSD1.XXX
C:Windows\xfile\RPDDFSS.XXX
C:Windows\xfile\XCCLDJW.XXX

我只需捕捉所有行中的最后一个单词,以这种方式编辑它们:

XXXCODSSD1 
XXXRPDDFSS
XXX......

我尝试过不同的命令,但我不是专家。 非常感谢你! 亲切的问候。

2 个答案:

答案 0 :(得分:1)

这是一个非常简单的一行FOR命令,使用/ F选项来读取文件。您可以使用FOR命令修饰符将文件名拆分为各个部分。 x修饰符用于文件扩展名。 n修饰符用于基本文件名。

@echo off
setlocal enabledelayedexpansion
FOR /F "usebackq delims=" %%G IN ("text.log") DO (
    set "var=%%~xG%%~nG"
    echo !var:~1!
)
pause

答案 1 :(得分:1)

鉴于您的输出文件名为.gitattributes,我建议类似于以下内容:

text.log

我已将@Echo Off For /F "UseBackQ Delims=" %%A In ("text.log" ) Do For /F "Tokens=* Delims=." %%B In ("%%~xA%%~nA") Do Echo %%B Pause 循环分成两行,以保持行长度在80个字符以内。虽然这不是一项要求,但它是最佳实践偏好。

修改

要在命令提示符下测试它,您可以使用以下单行:

For