Board logo

标题: 对for变量截取字符串的问题 [打印本页]

作者: jarry0932     时间: 2010-2-9 14:41    标题: 对for变量截取字符串的问题

有如下代码:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.*) do (
set b=%%a
echo !b:~-3!
)
pause
不知道能否直接对%%a 进行字符串截取,而不使用另外一个变量?我试了几种方法好像都不行,请大侠们赐教!!
作者: bat-zw     时间: 2010-2-9 15:07
你如果是要截取后缀名,直接echo %%~xa就可以了,

[ Last edited by bat-zw on 2010-2-9 at 15:10 ]
作者: jarry0932     时间: 2010-2-11 14:43
谢谢大侠指点,但假如我现在不截取后缀名,只截取后缀名的最后2个字符,或者是文件名的前2个字符,应该怎么办呢?
作者: jarry0932     时间: 2010-2-11 14:47
又或者是对于一个普通的字符串来说,我可以任意截取,但不用一楼的方法,能实现吗?请大侠们指点!
作者: q8249014     时间: 2010-2-12 18:13
for中所使用的变量 [%%i] 属于批处理中一种特殊的变量体,不能使用形同

%var:str1=str2% 的变量替换   只有使用[%]百分号和开启延迟环境变量扩

展后使用[!]英文感叹号引用的变量才可以进行变量替换
作者: jarry0932     时间: 2010-2-13 13:25
原来如此啊 多谢啦