我有2个文件(比如A.txt abd B.txt),每个文件的第一行都有一个数值(在A.txt中说“8”,在B.txt中说“9”)。
我必须比较两个文件之间第一行的值,并根据A.txt中的数值是否大于B.txt,必须调用另一个批处理文件。
有人可以帮我实现吗?
答案 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)