批处理 findstr 我想查找文件中的某个字符串,不是要输出该字符串所在的行

批处理 findstr 我想查找文件中的某个字符串,不是要输出该字符串所在的行
比如说,我通过一堆命令获得了这样的一个输出:版本:61200 我想在这个基础上仅仅获得61200这个数字的输出,应该怎么做呢?

第1个回答  2011-12-02
@echo off
echo 12345678>1.txt
echo 版本:61200>>1.txt
echo abcdfg>>1.txt
for /f "tokens=2 delims=:" %%i in ('findstr 版本 1.txt') do set ver=%%i
echo %ver%
第2个回答  2011-12-01
@set str=版本:61200
@set a=%str:~3%
@echo %a%
@pause追问

能否解释一下 str:~3 用的是什么命令啊?

追答

变量的 字符串截取用法

截取功能统一语法格式为:%a:~[m[,n]]%

方括号表示可选,%a%为变量名,不可少,冒号用于分隔变量名和说明部分,
符号~可以简单理解为“偏移”即可,
m为偏移量(缺省为0),n为截取长度(缺省为全部)
上面所述用法其实相当于vbs函数mid、left、right
%a:~0,n% 相当于函数left(a,n) 取左边n位
%a:~-m% 相当于函数right(a,m) 取右边m位
%a:~m,n% 相当于函数mid(a,m+1,n) 从m+1位开始取n位
%a:~m,-n% 相当于函数mid(a,m+1,len(a)-m-n),从m+1位开始,至倒数n+1位
%a:~m % 相当于函数mid(a,m+1,len(a)-m) 或者right(a,len(a)-m),从m+1位开始取右边全部。

出自
DOS批处理高级教程精选合编.pdf (里面有一些例子 你去看一看吧 ,新浪爱问上有下载)

例如
截取功能例子3:
@echo off set a=bbs.verybat.cn
set var=%a:~3%
echo %var%
pause

运行显示:.verybat.cn 这个就是把变量a的从第3位开始后面全部的值给变量VAR

截取功能例子4:
@echo off set a=bbs.verybat.cn
set var=%a:~0,-3%
echo %var%
pause

执行后,我们发现显示的是"bbs.verybat",少了".cn" 从结果分析,很容易分析出,这是把变量a的值从0位开始, 到倒数第三位之间的值全部赋予给var

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网