FOR命令中的变量.docVIP

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

?FOR命令中的变量 FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来: ??? ~I?????? - 删除任何引号(),扩展 %I ??? %~fI??????? - 将 %I 扩展到一个完全合格的路径名 ??? %~dI??????? - 仅将 %I 扩展到一个驱动器号 ??? %~pI??????? - 仅将 %I 扩展到一个路径 ??? %~nI??????? - 仅将 %I 扩展到一个文件名 ??? %~xI??????? - 仅将 %I 扩展到一个文件扩展名 ??? %~sI??????? - 扩展的路径只含有短名 ??? %~aI??????? - 将 %I 扩展到文件的文件属性 ??? %~tI??????? - 将 %I 扩展到文件的日期/时间 ??? %~zI??????? - 将 %I 扩展到文件的大小 ??? %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展 ?????????????? 到找到的第一个完全合格的名称。如果环境变量名 ?????????????? 未被定义,或者没有找到文件,此组合键会扩展到 ?????????????? 空字符串 我们可以看到每行都有一个大写字母I,这个I其实就是我们在FOR带入的变量,我们FOR语句代入的变量名是什么,这里就写什么. 比如:FOR /F?? %%z IN (set) DO @echo %%z 这里我们代入的变量名是z那么我们就要把那个I改成z,例如%~fI改为%~fz 至于前面的%~p这样的内容就是语法了! 好开始讲解: 一、 ~I?????? - 删除任何引号(),扩展 %I 这个变量的作用就如他的说明,删除引号! 我们来看这个例子: 首先建立临时文件temp.txt,内容如下 1111 2222 3333 444444 555555 可建立个BAT文件代码如下: @echo off echo ^1111temp.txt echo 2222temp.txt echo 3333^temp.txt echo 444444temp.txt echo ^555555temp.txt rem 上面建立临时文件,注意不成对的引号要加转义字符^,重定向符号前不要留空格 FOR /F delims= %%i IN (temp.txt) DO echo?? %%~i pause del temp.txt 执行后,我们看CMD的回显如下: 1111?????????? #字符串前的引号被删除了 2222?????????? #字符串首尾的引号都被删除了 3333?????? #字符串前无引号,后面的引号保留 444444??????? #字符串前面的引号删除了,而中间的引号保留 555555??? #字符串前面的引号删除了,而中间的引号保留 请按任意键继续. . . 和之前temp.txt中的内容对比一下,我们会发现第1、2、5行的引号都消失了,这就是删除引号~i的作用了! 删除引号规则如下(BAT兄补充!) 1、若字符串首尾同时存在引号,则删除首尾的引号; 2、若字符串尾不存在引号,则删除字符串首的引号; 3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。 龙卷风补充:无头不删,有头连尾删。 二、 %~fI??????? - 将 %I 扩展到一个完全合格的路径名 看例子: 把代码保存放在随便哪个地方,我这里就放桌面吧. FOR /F delims== %%i IN (dir /b) DO @echo?? %%~fi pause 执行后显示内容如下 C:\Documents and Settings\Administrator\桌面\test.bat C:\Documents and Settings\Administrator\桌面\test.vbs 当我把代码中的 %%~fi直接改成%%i FOR /F delims== %%i IN (dir /b) DO @echo?? %%i pause 执行后就会显示以下内容: test.bat test.vbs 通过对比,我们很容易就看出没有路径了,这就是将 %I 扩展到一个完全合格的路径名的作用 也就是如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名,自己动手动实验下就知道了! 三、 %~dI??????? - 仅将 %I 扩展到一个驱动器号 看例子: 代码如下,我还是放到桌面执行! FOR /F delims== %%i IN (dir /b) DO @echo?? %%~di pause 执行后我CMD里显示如下 C: C: 我桌面就两个文件test.bat,test.vb

文档评论(0)

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

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

1亿VIP精品文档

相关文档