如何通过批处理脚本从文件中获取特定值?

时间:2019-11-10 07:34:48

标签: batch-file

我有一个abc.txt文件,其中包含以下内容

3922 [main] INFO  com.informatica.saas.utilities.task.ICSTask  - Submitted run of the task: taskId=000YKG0N00000000002N, taskRunId=\

我想提取单词000YKG0N00000000002N并将其存储在变量中以在脚本中进一步使用。

我尝试使用以下代码:

for /F "tokens=*" %%A in (abc.txt) & for %%A in ("taskId=" "%") do echo Value: %%~A

我得到的错误:

  

%% A这一次出乎意料

请帮助我解决问题

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

@echo off
for /F "tokens=2 delims==" %%A in ('Type abc.txt') do ( 
    for /F "tokens=1 delims=," %%B in ('echo %%A') do (
        Set "IDTask=%%B"
    )
)
echo TaskID = [%IDTask%]
pause

编辑: 另一个受Gerhard Barnard启发的代码:

@echo off
SetLocal EnableDelayedExpansion
@for /f "tokens=2 delims=:," %%i in ('type abc.txt') do ( 
    @set%%i 
    REM To remove Space into Variable
    Set "taskID=!taskID: =!"
    echo taskID = [!taskID!]
)   
pause

答案 1 :(得分:0)

也许很简单:

@for /f "tokens=2 delims=:," %%i in ('type abc.txt') do @set%%i
echo %taskID%

或者如果令牌根据您的新问题转移:

@for /f "tokens=3 delims=:," %%i in ('type abc.txt') do @set%%i
echo %taskID%