我正在尝试将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
答案 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!%)