标题: [文本处理] 批处理命令set中怎样使用转义符? [打印本页]
作者: yzlsc 时间: 2012-3-18 13:21 标题: 批处理命令set中怎样使用转义符?
set命令中怎样使用转义符?
假设文件名为“长度不定的中英文字符串+长度不定的数字”这种形式,比如test.bat、test1.bat、mytest12.bat、测试123.bat等等,怎样才能取出文件名中的数字呢?下面set num=%name:~%L%%这行代码怎样使用转义符?- ::4
- rem 上一行中的数字为假设的文件名中字符串部分的长度
- @echo off
- set /p L=<%0
- set L=%L::=%
- set name=%~n0
- set num=%name:~%L%%
- rem 上一行代码中怎样使用转义符才能使效果等同于执行set num=%name:~4%呢?
- echo num的值是%num%
- pause & exit
复制代码
作者: find 时间: 2012-3-18 13:25
http://www.bathome.net/thread-2899-1-1.html
作者: yzlsc 时间: 2012-3-18 14:00
回复 2# find
谢谢,原来是要使用变量延迟。前不久我刚看过《for语句从入门到精通》这篇文章,可是没能完全理解,以为只有在FOR语句中才需要用到变量延迟,没想到这里也要用到。下面的代码虽已修改测试通过,但还没完全理解。- ::4
- @rem 上一行中的数字为假设的文件名中字符串部分的长度
- @echo off
- setlocal enabledelayedexpansion
- set /p L=<%0
- set L=%L::=%
- set name=%~n0
- set num=!name:~%L%!
- echo 字符串部分的长度是 %num%
- pause & exit
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |