存储cmd查找结果到变量

时间:2015-07-29 22:33:02

标签: cmd

我正在尝试将find /c /i的计数结果存储到变量

find /c /i "sa0" "C:\Users\Luigi.Elsa-PC\Desktop\XBR\Raw\SA00292.01"

这会输出---------- C:\USERS\LUIGI.ELSA-PC\DESKTOP\XBR\RAW\SA00292.01: 2

我想要变量中的数字2。

我尝试过使用for do

C:\Users\Luigi.Elsa-PC\Desktop>for /F %i in ('find /c /i "sa0" "C:\Users\Luigi.E
lsa-PC\Desktop\XBR\Raw\SA00292.01"') do (echo %i )

C:\Users\Luigi.Elsa-PC\Desktop>(echo ---------- )
----------

但正如你所看到的那样。它只获得----------而不是2

2 个答案:

答案 0 :(得分:1)

仅获取计数,而不是完整的行,您必须将其拆分为合适的分隔符。在:分割会给你两个代币,你需要第二个代币:

for /F "tokens=2 delims=:" %i in ('find /c /i "sa0" "C:\Users\Luigi.Elsa-PC\Desktop\XBR\Raw\SA00292.01"') do set /a count=%i
echo %count%

用于批处理文件,写%%i而不是%i(两次)

标准令牌为1,标准分隔符为<space><tab>,;,因此您的代码会为您提供第一个分隔的标记标准分隔符,结果为----------

答案 1 :(得分:0)

"tokens=*"命令

中添加For参数
for /F "tokens=*" %i in ('find /c /i "sa0" "C:\Users\Luigi.Elsa-PC\Desktop\XBR\Raw\SA00292.01"') do (set var=echo %i)
set var=%var:~-1!%)