批处理截取

”%input:~10%“
请问这是截取input数据的第10位还是第11位?
或者说批处理就像c语言一样从0开始计数的吗?
%input:~0,7% 这个呢?怎么截取? 谢谢
不好意思,因为是新手,没考虑太多,第一条完整命令应该是 if"%input:~10%"=="" goto main 这里取得是第10位还是第第11位? 是前10位还是前11位?(从1开始计数)

%var:~a,b% 取var中自第a个后b个字符
其中a为0时可省去a
取到末尾时可省去 ,b 所以所列的意思是取截去前10字符取所剩部分
详见运行cmd进命令行后输入set/?追问

前10位,请问是从0开始计数的还是从1开始计数?就像c语言的数组一样从0开始计数?麻烦了

追答

比如
set input=abcdefg
则 %input:~2% 表示cdefg
而%input:~7%及7改成更大的数时均取的空值

追问

哦,这个明白啦谢谢,还有一个问题(汗。。)

就拿你那例子来说吧,abcdefg一共有7位数,如果我判断是提取前8位,也就是说第8位为空(这样说应该没问题吧),那结果是否为空?if"%input:~8%"=="" 这条语句是否成立?

追答

刚才应该已说明了----成立的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-10
就算是高手不细心也是不行的,我不算高手但也不是这么个说法,没人回答就不能细心检查一下?
!PASSTQ,~6,2!是什么意思?我看前面if 里 !PASSTQ:~2,1! 好像不是这么用的嘛?
第2个回答  2014-08-10
呵呵 楼上的有一点小小的错误,应该是
set a=%str:~0,-1%
相似回答