[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
楼上几种方案的微调
如果再精简的话
可以把nul改为#
不过那和%0改0一样具有限制
  1. @set/az+=i+=1,1/(100-i)2>nul&&%0&set,z&pause
复制代码
  1. @set/az+=i+=1
  2. @if %i% leq 99 %0
  3. @set,z&pause
复制代码
  1. @set/az+=i+=1
  2. @%0%i:~2%=2>nul||(set,z&pause)
复制代码
天的白色影子

TOP

本帖最后由 qzwqzw 于 2012-12-23 17:54 编辑

如果不考虑任何隐含的限制条件
那么set.&pause也可以省略了
反正也没有限定一定要输出结果
而2>的使用也完全可以省略了
也因为题目没有限定要屏蔽错误
@在未限定屏蔽命令时也无必要
最后精简得到的代码结果如下:
  1. set/as+=i+=1,1/(i/100)||0
复制代码
还是给一个稍微正常点的精简
  1. @set/as+=i+=1,1/(i-101)2>nul&&%0||set/p=%s%
复制代码
上段代码会递减输出从0~100到0~0的累加结果
另外给一个递增输出从0~100到0~...的代码
  1. @set/as+=i+=1,1/(i/101)2>nul&&set/p=%s%||%0
复制代码
从代码的执行结果来看
&&与||联用的执行逻辑与我想象的还有些不同
它的执行条件受到了set/p的影响
如果set/p=%s%改成echo %s%结果会有不同
因为Echo会置%errorlevel%为0而set/p会置1
天的白色影子

TOP

返回列表