批处理文件,用于比较2个不同txt文件中每个文件的第一行中的值

时间:2016-02-03 11:29:47

标签: batch-file

我有2个文件(比如A.txt abd B.txt),每个文件的第一行都有一个数值(在A.txt中说“8”,在B.txt中说“9”)。

我必须比较两个文件之间第一行的值,并根据A.txt中的数值是否大于B.txt,必须调用另一个批处理文件。

有人可以帮我实现吗?

1 个答案:

答案 0 :(得分:1)

将变量设置为文本文件中某一行的一种方法是将set /P与重定向一起使用。

@echo off
setlocal

set /P "a=" <"A.txt"
set /P "b=" <"B.txt"

if %a% gtr %b% call anotherbatchfile.bat
goto :EOF

如果它不是您要设置的第一行,但是,比如第5行,您只需在同一重定向中使用多个set /P命令,如下所示:

<"A.txt" (
    set /P "a="
    set /P "a="
    set /P "a="
    set /P "a="
    set /P "a="
)

rem # or...

<"A.txt" (
    for /L %%I in (1,1,5) do set /P "a="
)

或者您可以使用for /f来阅读文本文件。控制台窗口中的help for可获取更多信息。只是为了咯咯笑,我还将演示如何使用call在批处理脚本中定义函数。

@echo off
setlocal

for %%I in (a b) do call :setfirstline "%%I.txt" %%I

if %a% gtr %b% call anotherbatchfile.bat
goto :EOF

:setfirstline <txtfile> <var_to_return>
for /f "usebackq delims=" %%I in ("%~1") do (set "%~2=%%I" & goto :EOF)