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

一个字.好

老师说过帮了你的人,要对他说谢谢.我是听话的孩子哦.

TOP

回复 12楼 的帖子

建议把顶楼的教程多看几遍,自己多写代码练习一下。
  1. @echo off
  2. set str=123456789
  3. set var1=%str:~0,1%
  4. set var3=%str:~2,1%
  5. set var5=%str:~4,1%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

又学到东西了

TOP

 ⑤ 提取234:set var=%str:~1,3% 或 set var=%str:~1,-6% 或 set var=%str:~-8,3%
?????结果好像是只能得到23吧 我是新手 请老鸟们多多指教啊
1

评分人数

    • namejm: 呵呵,你很细心,谢谢你的指正。PB + 2

TOP

  感谢你指出我的错误,正确的代码应该是 set var=%str:~1,-5%,我写教程的时候多抛弃了一位了,已经改正,谢谢。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

set str=1 2 3 4 5 .....98 99 100
怎么样得到奇数项??

TOP

原创:set截取字符--新的简易解释

看过尘土飞扬的《set截取字符详解》、youxi01的《变量字符截取 点点通》,终于明白了Set如何截取字符的,感谢他们!
但是,我想出了更容易理解的解释,本着百花齐放、勇于探新的精神,呵呵,虽说是菜鸟,也不妨讲出来,使更多菜鸟能够快速地理解和掌握。言归正传,开始了。
set var=1234567890
echo %var:~4,-2%     
结果是  var=5678
上例中,截取字符,是按位操作的,下面就以比较复杂的“截取中间字符串”为例,说明一下怎样快速理解并掌握字符的截取方法。

先看下面的新解释:
~:删除前几位;(删前)
~-:保留后几位;(保后)
如果一次操作的结果,无法到达目的,需要在第一次操作的结果上,再进行二次操作:
,:保留前几位;(保前)
,-:删除后几位;(删后)

例如:set var=1234567890
%var:~4%           ~4删除前4位,即var=567890;
%var:~-6%         ~-6保留后6位,即var=567890;
%var:~4,-2%      ~4删除前4位,即var=567890,再由“,-2”删除后2位,即var=5678;
%var:~-6,4%      ~-6保留后6位,即var=567890,再由“,4”保留前4位,即var=5678;
%var:~4,4%        ~4删除前4位,即var=567890,再由“,4”保留前4位,即var=5678;
%var:~-6,-2%     ~-6保留后6位,即var=567890,再由“,-2”删除后2位,即var=5678;
通过仔细研究这6个例子,你可以很容易的理解set截取字符的方法,加以简单练习,就可以很快的掌握了。
1

评分人数

TOP

非常感谢楼主的讲解,真是受益匪浅啊

TOP

看了一下,谢谢了,,

TOP

回复 1楼 的帖子

十分感谢楼主提供这么好的学习帖子.............我阅读完发现小错误一处.不知道是楼主故意给我们新手思考的还是笔误.
② 提取2: set var=%str:~1,1% 或 set var=%str:~1,-8% 或 set var=%str:~-8,1%
中的set var=%str:~1,-8%应该是
set var=%str:~1,-7%吧...楼主看看
1

评分人数

    • namejm: 感谢指出错误,谢谢。PB + 2

TOP

看了楼上的讲解,结合自己的理解,把截取字符归纳为4条:
1、set var=%str: ~n, m%    从n+1 开始,从左至右连续m个
2、set var=%str: ~n, -m%  从n+1 开始,去掉最后m个
3、set var=%str: ~-n, m%   截取最后n个,从左至右连续m个
4、set var=%str: ~-n, -m%  截取最后n个,去掉最后m个

TOP

好东西学习再学习

TOP

讲得真是太祥细了,谢谢

TOP

哦,明白了
(1),偏移量前的+,-,表示方向,,向左或右,
      长度前的+,-,+表示保留,-表示去掉,
set var=1,2,3,4,5,6,7,8,9
(2)如果偏移量前是+,那么它的第一个元素的下标序列号为0....(下标序列号最大是8)
    而 如果偏移量前是-,那么也就是从右向左开始,它的倒数第一个是-9,而不是-8.


强!!!!

[ 本帖最后由 xmaoh234 于 2009-5-8 13:31 编辑 ]

TOP

学习了,感谢LZ的详细讲解让新手也能看懂!

TOP

返回列表