无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2357|回复: 14
打印 上一主题 下一主题

一段情要埋藏多少年,一段代码要难为我多少天---批处理通过变量递减作为循环条件

[复制链接]
跳转到指定楼层
1#
发表于 2024-2-24 23:18:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 likeyouli 于 2024-2-24 23:21 编辑
  1. @echo OFF
  2. SET B="1245.5545.4784264-54}55.6>5?4$5(8*9"
  3. :LOOP
  4. SET D=%B:~-1,1%
  5. SET B=%B:~0,-1%
  6. echo %D%
  7. pause
  8. GOTO LOOP
复制代码
咋看这段代码,没看到循环条件,经过测试才发现,原来是变量b循环重新赋值,使变量D逐个接收字符串"1245.5545.4784264-54}55.6>5?4$5(8*9"里每一个元素,高!
  代码原创@chinanet,来自帖子http://bbs.wuyou.net/forum.php?mod=viewthread&tid=409719&page=1 17楼,2018年的帖子,我才看明白~~~
2#
发表于 2024-2-25 00:02:10 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2024-2-25 07:27:55 | 只看该作者
谢谢分享
回复

使用道具 举报

4#
发表于 2024-2-25 08:57:10 | 只看该作者
分享经验谢谢
回复

使用道具 举报

5#
发表于 2024-2-25 09:45:47 | 只看该作者
vb
回复

使用道具 举报

6#
发表于 2024-2-25 09:58:25 | 只看该作者
分享经验谢谢
回复

使用道具 举报

7#
发表于 2024-2-25 10:21:14 | 只看该作者
本帖最后由 Climbing 于 2024-2-25 10:23 编辑

变量D逐个接收字符跟循环条件也没有任何关系啊?在我看来,这就是一个死循环啊。
你初学批处理,不要将太多精力放到这种类似抖机灵的技巧上,你把For命令学扎实了,基本上就差不多了。

点评

肯定死循环啊,因为没写退出条件,假如我写提出的字符串为.或为其他符号的时候goto到哪里不就行了。 可能你没理解我表达的意思,刚看到这个循环的时候,以为变量D不会有任何变化,因为后边的-1,1没有变,没想到这个  详情 回复 发表于 2024-2-25 11:46
回复

使用道具 举报

8#
发表于 2024-2-25 10:41:39 | 只看该作者
谢谢分享经验
回复

使用道具 举报

9#
发表于 2024-2-25 11:04:25 | 只看该作者

谢谢分享经验
回复

使用道具 举报

10#
发表于 2024-2-25 11:23:44 | 只看该作者
谢谢分享经验
回复

使用道具 举报

11#
 楼主| 发表于 2024-2-25 11:46:41 来自手机 | 只看该作者
本帖最后由 likeyouli 于 2024-2-25 12:01 编辑
Climbing 发表于 2024-2-25 10:21
变量D逐个接收字符跟循环条件也没有任何关系啊?在我看来,这就是一个死循环啊。
你初学批处理,不要将太 ...

肯定死循环啊,因为没写退出条件,假如我写提出的字符串为.或为其他符号的时候goto到哪里不就行了。  可能你没理解我表达的意思,刚看到这个循环的时候,以为变量D不会有任何变化,因为后边的-1,1没有变,没想到这个循环是因待提取的字符串B变化导致D变化的。  我的这两次提问,都是因为这小细节小机灵不熟导致的,如果明确报什么错误,我反倒好应付。
回复

使用道具 举报

12#
发表于 2024-2-25 12:06:10 来自手机 | 只看该作者
没报错是回车打得不够

点评

我知道,,到最后肯定提不出字符就会报错了。还有提取到>这个符号的时候也会报错,这个符号与重定向符雷同,,但这都不是我想表达的意思,我想表达的是变量后边的:~-1,1,0,-1没变的情况下,会触发循环的变量变化,  详情 回复 发表于 2024-2-25 12:21
回复

使用道具 举报

13#
发表于 2024-2-25 12:12:34 | 只看该作者
随便看看
回复

使用道具 举报

14#
 楼主| 发表于 2024-2-25 12:21:18 来自手机 | 只看该作者
szwp 发表于 2024-2-25 12:06
没报错是回车打得不够

我知道,,到最后肯定提不出字符就会报错了。还有提取到>这个符号的时候也会报错,这个符号与重定向符雷同,,但这都不是我想表达的意思,我想表达的是变量后边的:~-1,1,0,-1没变的情况下,会触发循环的变量变化,主要原因:一是我对0,-1参数不熟,二是我对这种通过待提取字符串循环变化而导致循环的思路不熟,没大写过这种方式循环,以往都是用n+=1这种通过计数的方式循环。
回复

使用道具 举报

15#
发表于 2024-2-25 17:32:31 | 只看该作者
将第一行删了,就能观察到变化了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-22 14:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表