网站大量收购独家精品文档,联系QQ:2885784924

Cn-DOS技术文档教程学习.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Cn-DOS技术文档教程学习

for /L 再认识 for 的 begin,step,end 在for内部是无法更改的for无法在其内部更改自己的first,step,end 从而动态控制自己的循环进程 也就是说,类似这样的句式达不到预期的目的,即使开启延迟扩展 @echo off setlocal enabledelayedexpansion set /a begin=0,step=1,end=163 for /l %%i in (!begin! !step! !end!) do ( ? ? echo.Current:i=%%i, begin=!begin!, step=!step!, end=!end! ? ? set /a end-=step ) =for /l %a in (1,1,9+1) do @echo %a 结果是1……9,而并非1……10(9+1)。这里的+只是一个“分隔符”,- 号亦是如此。 for /l %a in (1,1,9-3) do @echo %a 结果也是1……9,而并非1……6(9-3)。 for /l %a in (1,1,9+1,1,2,3,4,5,) do @echo %a 结果仍然是1……9。 R $for /l %a in (1,1,9+1,1,2,3,4,5,) do @echo %a 或for /l %a in (1*3,1+2,9+3) do @echo %a 1 2 3 4 5 6 7 8 9 Set 命令 用set时最好养成加引号的习惯set others=y=2007m=05d=11m=26rticle=测试 echo %others%;要设置名为 TEST^1 的环境变量,请键入: set testVar=test^^1 要设置名为 TEST1 的环境变量,请键入: set testVar=test^1 Set 将变量值设置成等号 (=) 后的内容。如果键入: set testVar=test^1 将得到如下结果: testVar=test^1Set中的set %PATH:*str1=str2% @echo off set str=123*456 set str=%str:*3=% echo %str% pause ::str1 可以以星号打头;在这种情况下,str1 会从扩展结果的 ::开始到 str1 剩余部分(本例中是3)第一次出现的地方,都一直保持相配。 ::*3表示str1中第一个3及其3之前的所有字符 =123 set防止变量输入为空: @echo off :loop set /P name=请输入计算机名称: if not defined name (goto loop) @echo off :st echo 请选择 set /p aa= if [%aa%]==[] goto st if /i [%aa%]==[n] goto and exit :and exit 建议 if [%aa%]==[] goto st (这一句等同于 if %a%== goto st) 这一句写成 if not defined aa goto st 否则的话极易让人理解为直接回车的话%aa%是空[格]; 实际上直接回车是指不定义aa关于环境变量延迟扩展,使用set /?可以查看到部分说明,不过考虑到其粗劣的翻译水平,建议在查看之前,首先chcp 437切换为英文查看原英文说明。鉴于文中已说得十分详尽,而且有数个代码示例,应该不难理解。在此仅略作一些补充。 ? ?? ?在许多可见的官方文档中,均将使用一对百分号闭合环境变量以完成对其值的替换行为称之为“扩展(expansion)”,这其实是一个第一方的概念,是从命令解释器的角度进行称谓的,而从我们使用者的角度来看,则可以将它看作是引用(Reference)、调用(Call)或者获取(Get)。 ? ?? ?而命令解释器是扩展环境变量的行为大致如下:首先读取命令行的一条完整语句,在进行一些先期的预处理之后,命令被解释执行之前,会对其中用百分号闭合的字符串进行匹配,如果在环境空间中找到了与字符串相匹配的环境变量,则用其值替换掉原字符串及百分号本身,如果未得到匹配,则用一个空串替换,这个过程就是环境变量的“扩展”,它仍然属于命令行的预处理范畴。 ? ?? ?而一条“完整的语句”,在NT的命令解释器CMD中被解释为“for if else”等含有语句块的语句和用“ | ||”等连接起来的复合语句。 ? ?? ?因此,当CMD读取for语句时,其后用一对圆扩号闭合的所有语句将一同读取,并完成必要的预处理工作,这其中就包括环境变量的扩展,所以在for中的所有语句执行之前,所有的环境变量都已经被替换

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档