for 续9
-------siwuxie095
for
拾遗:
一:
for 语句里,do 后面一般会有括号,有括号就是复合语句,
假如需要用到括号里的变量,就需要延迟变量。于是,基本
上有 for 的地方,就需要用到延迟变量
二 :
for 语句里,不能改变循环变量
%%i 的值
如:
|
@echo off setlocal enabledelayedexpansion for /l %%i in (1,1,10) do ( set /a %%i-=2 set /a %%i=%%i+2 set /a %%i=!%%i!+2 set /a %%i=-%%i set /a %%i=-!%%i! set set ) Pause |
sublime中:

运行一览:

上面一切形式对循环变量
%%i 进行运算以及
添加负号都是无效的,循环变量
%%i 值不会
有任何变化,并且会显示 "找不到操作数"
和
"运算符不存在"
三:
for 语句里,可以改变上下限的值,但不会影响循环次数
如:
|
@echo off setlocal enabledelayedexpansion for /l %%i in (!min!,1,!max!) do ( echo min=!min! max=!max! ) pause |
sublime中:

运行一览:

四:
for 语句里,以 %var:~m,n% 形式截取字符,会变得掣肘!
主要原因是 for 语句里不能对循环变量
%%i 进行运算,以及在
延迟变量环境下,很难表达
%var:~m,n%
情况 1:假如 m 恒等于
%%i,而 n 总比 m 相差一个定值 P,
如何表达
%var:~m,n%
这个形式
情况 2:假如 m 或 n 需要用到
%%i 的负值,也就是 -%%i 形式,
如何表达
%var:~m,n%
这个形式
对于情况 1,第一反应就是引入一个新变量 j,对 j 值可以
进行运算,然后将 j 代入
%var:~m,n%
即可
代码如下:
|
@echo off setlocal enabledelayedexpansion set var=abcdefghijklmnopqrstuvwxyz for /l %%i in (1,1,10) do ( set /a j=%%i-1 set tem=!var:~%%i,j! echo !tem! ) pause |
sublime中:

上面的代码肯定不行,因为 set tem=!var:~%%i,j!
中的 j 是变量,
没有用变量符号将其表达出来。而代码用了延迟变量,则表达式改
为 set tem=!var:~%%i,%j%!
肯定不对
用感叹号如何:
set tem=!var:~%%i,!j!!
也不行,因为从计算机角度看来,感叹号括到的范围为
!var:~%%i,!
和
j!!,这个结果不是想要的
那么,如果先对 j 进行处理
set j=!!j!!,然后 set tem=!var:~%%i,j!,
这样也不行。也即,假如 m 值和 n 值,是有一定关系差值的动态变化
情况,就无法简单用
%var:~m,n%
这个形式表达出来,得另想办法,具体实现,
要看实际要达到什么效果
对于情况 2,由于不能对
%%i 进行取负值,但却能从一开始
循环时对循环参数取负值
如:
|
@echo off setlocal enabledelayedexpansion set var=abcdefghijklmnopqrstuvwxyz for /l %%i in (-1,-1,-10) do ( set tem=!var:~%%i! echo !tem! ) Pause |
sublime中:

运行一览:

上面,只需要用到 m 值 ,假如 n 值随 m 值变化而变化,
想要用
%var:~m,n%
的形式又束手无策了,得另想办法,
具体实现,要看实际要达到什么效果
一个变通的例子:输入一串字符,要求从字符串末尾
一个一个字符输出到字符串开头
|
@echo off setlocal enabledelayedexpansion set var=abcdefghijklmnopqrstuvwxyz for /l %%i in ( -1,-1,-26 ) do ( set tem=!var:~%%i! set tem= !tem! set tem=!tem:~1,1! echo !tem! ) pause |
sublime中:

运行一览:

五:
读入一个有两个数的算式,将其中的两个数赋值到字符串并回显
在输入数学表达式的时候,都是输入像 12+34,25-6 等这样的表达
式,所以实现上面的效果对编辑计算器非常有用,符合输入习惯
|
@echo off setlocal enabledelayedexpansion for /f "delims=+ tokens=1,2" set num1=%%i set num2=%%j echo num1 = !num1! num2 = !num2! ) pause |
sublime中:

运行一览:

注意:"%num%" 一定要用双引号引起来,否则计算机会显示
"找不到文件"
【made by siwuxie095】
for 续9的更多相关文章
- .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入
上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- iOS 开发者账号到期续费流程
1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
- CI-持续集成(1)-软件工业“流水线”概述
CI-持续集成(1)-软件工业“流水线”概述 1 概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)
ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...
- [译]Godot系列教程三 - 场景实例化(续)
场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...
- 【小白的CFD之旅】13 敲门实例【续3】
接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...
- 【小白的CFD之旅】12 敲门实例【续2】
接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...
- jquery实现简单瀑布流布局(续):图片懒加载
# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...
随机推荐
- OMAP4之DSP核(Tesla)软件开发学习(四)ARM核与DSP核通讯示例
首先,安卓系统完全启动4AJ.2.1. 其次,查看OMAP4的Tesla相关信息,检查Tesla是否使能.(有如下显示,则OK) cat /d/emoteproc/omap-rproc.0/versi ...
- excel 应用,右下角的小十字拖拽的时候形成递减的数列
excel 应用,右下角的小十字拖拽的时候形成递减的数列 2012-12-20 15:16无良小鬼 | 浏览 352 次 比如说我想要这样一列数字201220112010……这样递减的数列,而不是递增 ...
- 0基础小白怎么学好Java?
自身零基础,我们应该先学好Java,小编给大家介绍一下Java的特性: Java语言是简单的 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java.Java丢弃了C+ ...
- mysql配置调优-开启慢查询日志-slow_query_log
工作中,会遇到需要查看mysql的top 20 慢sql,逐个进行优化,加上必要的索引这种需求,这时就需要开启数据库的慢查询日志的功能 1.查询当前慢查询日志的状态 # 默认为关闭状态 mysql - ...
- try...except语句
try: 执行语句 except 执行语句有异常就执行这一步 else: 执行语句没有异常就执行这一步 finally 不管有没有异常,这一步就要执行
- 《FDTD electromagnetic field using MATLAB 》读书笔记001-差商种类
有限差分就是用差商代替微商,有3钟: 1.向前差商 2.向后差商 3.中心差商 上面三张途中虚线就是函数在x的精确微商(偏导数),直线就是用来代替精确 微商的差商格式.
- Jenkins构建常见问题
最近在用jenkins搭建.NET自动编译发布环境时遇到的一些问题,解释不一定都对,仅记录以备后用. 1.MSBUILD : error MSB1008: 只能指定一个项目 Build a Visua ...
- 认识hammer.js
hammerjs是什么 hammerjs是一个短小精悍的库,他可以让我们轻松的实现移动端上的手势. hammerjs的两大优势如下: 为移动端网页添加相关手势. 去除移动端上的点击事件的300ms延迟 ...
- test20181016 B君的第三题
题意 B 君的第三题(haskell) 题目描述 大学四年,我为什么,为什么不好好读书,没找到和你一样的工作. B 君某天看到了这样一个题,勾起了无穷的回忆. 输入\(n, k\) 和一棵\(n\) ...
- 494 - Kindergarten Counting Game
Kindergarten Counting Game Everybody sit down in a circle. Ok. Listen to me carefully. ``Woooooo, ...