标题: [文本处理] [已解决]批处理set命令怎样把字符串的前三位读取出来? [打印本页]
作者: WecanHuang 时间: 2011-2-20 17:56 标题: [已解决]批处理set命令怎样把字符串的前三位读取出来?
我想将某段字符串的前三位读取出来,用以下三种方案来做,结果发现不一样,为什么第三种才行呢?前面两种的问题在哪?- @echo off
- set str=abcdefgh
- set m=0
- set var=%str:~%m%,3%
- echo %var%
- pause
-
- set var=%%str:~%m%,3%%
- echo %var%
- pause
-
- call set var=%%str:~%m%,3%%
- echo %var%
- pause
复制代码
[]
[ 本帖最后由 WecanHuang 于 2011-2-21 10:51 编辑 ]
作者: wc726842270 时间: 2011-2-20 19:03
- @echo off&setlocal enabledelayedexpansion
- set str=abcdefgh
- set m=0
- set var=!str:~%m%,3!
- echo %var%
- pause
-
- set var=!!!str:~%m%,3!!!
- echo %var%
- pause
-
- call set var=%%str:~%m%,3%%
- echo %var%
- pause
复制代码
作者: wc726842270 时间: 2011-2-20 19:06
自已对比一下区别。另外多做一些试验
关于ECHO %var%自已在两旁多加几次%就行了
作者: WecanHuang 时间: 2011-2-20 19:16
刚学啊
很多疑问
set var=1和set "var=1"这样的代码有什么区别呢?
作者: wc726842270 时间: 2011-2-20 19:20 标题: 回复 4楼 的帖子
在这里是没有区别的。不妨试下
SET VAR=1 1 和SET "VAR=1 1"(个人感觉)。另外不用急,只要有行动,总会明白的
作者: WecanHuang 时间: 2011-2-20 23:22
谢谢
这里很有爱。。。
作者: Batcher 时间: 2011-2-21 12:52 标题: 回复 4楼 的帖子
前者,如果要赋值字符串里面有特殊字符的话可能无法正常赋值。
后者,可以避免上述问题。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |