如何在批处理脚本中将FIND命令输出计数值转换为变量?

时间:2016-09-29 06:43:16

标签: batch-file cmd

我正在使用命令:

find /c "abc" "C:\Users\abc\Desktop\project\string.txt"

输出:

---------- C:\Users\abc\Desktop\project\string.txt: 4

我想将此值4分配给变量,以便我可以将其用于if语句。

3 个答案:

答案 0 :(得分:2)

我会用:

For /F %%A In ('Find /C "abc"^<"C:\Users\abc\Desktop\project\string.txt"') Do (
    Set "mlc=%%A")

您的%mlc%变量将保持匹配的行数。

答案 1 :(得分:0)

我不确定这是否是最好的方法,但它确实有效:

find /c "abc" "C:\Users\abc\Desktop\project\string.txt" > tmpFile 
set /p myvar= < tmpFile 
del tmpFile 

答案 2 :(得分:0)

使用你的snytax输出为---------- C:\Users\abc\Desktop\project\string.txt: 4
还有另一种语法:type file.txt|find /c "abc",它为您提供了漂亮的输出:

15

要将其变为变量,请使用for /f循环:

for /f %%a in ('type file.txt^|find /c "abc"') do set count=%%a
echo %count%

(直接在命令行上使用(不在批处理文件中)使用%a代替%%a