从.txt收集数据并使用批处理它

时间:2015-11-13 03:20:35

标签: batch-file process

mango  apple

56.88 97.22

rat cat

bull         dog

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

  1. 芒果在%var1%中设置,接下来应该处理

  2. 苹果在%var2%

  3. 56.88 in%var1%。

  4. 再次97.22 in%var2%... etc。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这应该工作

@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!
 )
)

答案 2 :(得分:0)

以下内容将文本文件a.txt中的每个项目存储到两个嵌套循环中的变量ITEM中。外部每行读取文件行;内部元素获取单个项目,由 SPACE TAB ,;=分隔。如果一行中只有一个项目,甚至超过两个项目,它也可以工作。由于变量在代码块(循环)中被更改和读取,因此%ITEM%之类的扩展(读取)不起作用;您需要启用延迟扩展并读取!ITEM!之类的变量。输入setlocal /?cmd /?以获取更多相关信息。

@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

对于此方法,假设文本文件中的项目不包含以下任何特殊字符:? * % ! {{1} } / \ : ( ) & ^ | < {{1} }。如果发生这种情况,它将失败。