[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理set命令怎样把字符串的前三位读取出来?

我想将某段字符串的前三位读取出来,用以下三种方案来做,结果发现不一样,为什么第三种才行呢?前面两种的问题在哪?
  1. @echo off
  2. set str=abcdefgh
  3. set m=0
  4. set var=%str:~%m%,3%
  5. echo %var%
  6. pause
  7. set var=%%str:~%m%,3%%
  8. echo %var%
  9. pause
  10. call set var=%%str:~%m%,3%%
  11. echo %var%
  12. pause
复制代码
[]

[ 本帖最后由 WecanHuang 于 2011-2-21 10:51 编辑 ]
1

评分人数

  1. @echo off&setlocal enabledelayedexpansion
  2. set str=abcdefgh
  3. set m=0
  4. set var=!str:~%m%,3!
  5. echo %var%
  6. pause
  7. set var=!!!str:~%m%,3!!!
  8. echo %var%
  9. pause
  10. call set var=%%str:~%m%,3%%
  11. echo %var%
  12. pause
复制代码
1

评分人数

枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

自已对比一下区别。另外多做一些试验
关于ECHO %var%自已在两旁多加几次%就行了
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

刚学啊
很多疑问
set var=1和set "var=1"这样的代码有什么区别呢?

TOP

回复 4楼 的帖子

在这里是没有区别的。不妨试下
SET VAR=1 1 和SET "VAR=1 1"(个人感觉)。另外不用急,只要有行动,总会明白的
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

谢谢
这里很有爱。。。

TOP

回复 4楼 的帖子

前者,如果要赋值字符串里面有特殊字符的话可能无法正常赋值。
后者,可以避免上述问题。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表