Batch file 从.txt收集数据并使用批处理进行处理

Batch file 从.txt收集数据并使用批处理进行处理,batch-file,process,Batch File,Process,这是a.txt中的文本。我需要一个批处理脚本一次处理每个单词 i、 e读取它并将其存储在需要进一步处理的变量中 例如: 芒果将在%var1%中设置,并应在下一步进行处理 苹果在%var2% 56.88 in%var1% 同样是97.22%var2%…等等 您的文本位于文本文件中。记事本只是一个文本编辑器。不确定我是否真的理解了你的问题,但这里有一个尝试,我认为你正在尝试做 mango apple 56.88 97.22 rat cat bull dog 这应该行得通 @

这是
a.txt
中的文本。我需要一个批处理脚本一次处理每个单词 i、 e读取它并将其存储在需要进一步处理的变量中 例如:

  • 芒果将在%var1%中设置,并应在下一步进行处理

  • 苹果在%var2%

  • 56.88 in%var1%

  • 同样是97.22%var2%…等等


  • 您的文本位于文本文件中。记事本只是一个文本编辑器。不确定我是否真的理解了你的问题,但这里有一个尝试,我认为你正在尝试做

    mango  apple
    
    56.88 97.22
    
    rat cat
    
    bull         dog
    
    这应该行得通

    @ECHO OFF
    FOR /F "delims=" %%G IN (a.txt) DO (
         FOR %%I IN (%%G) DO ECHO %%I
    )
    

    下面将文本文件
    a.txt
    中的每个项存储到变量
    item
    中的两个嵌套循环中。外部一个读取每行的文件行;内部的一个获取单个项,用空格、制表符、
    分隔
    =
    。如果一行中只有一个项目,甚至有两个以上的项目,它也可以工作。由于变量在代码块(循环)中更改和读取,像
    %ITEM%
    这样的扩展(读取)不起作用;您需要启用延迟扩展并读取变量,如
    !物品然后。键入
    setlocal/?
    cmd/?
    以了解有关该操作的详细信息

    @echo off
    cls
    setlocal enabledelayedexpansion
    for /f "tokens=1,2" %%a in (a.txt) do (
    set var1=%%a
    set var2=%%b
    
    echo var1 values is - !var1!
    echo var2 values is - !var2!
     )
    )
    

    对于这种方法,假定文本文件中的项不包含以下任何特殊字符:
    *
    %
    /
    ^
    。如果出现这种情况,它将失败。

    @Vivek GUTHIKONDA,如果您觉得我的答案有帮助,请投票支持,如果它解决了您的问题,请接受我的答案,其他人将更容易快速找到类似问题的答案。
    @echo off
    setlocal EnableExtensions EnableDelayedExpansion
    for /F "usebackq eol=| tokens=*" %%L in ("a.txt") do (
        for %%I in (%%L) do (
            set "ITEM=%%I"
            rem process each ITEM:
            echo Item: !ITEM!
        )
    )
    endlocal