- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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,内容如下111122223333444444555555可建立个BAT文件代码如下:@echo offecho ^1111temp.txtecho 2222temp.txtecho 3333^temp.txtecho 444444temp.txtecho ^555555temp.txtrem 上面建立临时文件,注意不成对的引号要加转义字符^,重定向符号前不要留空格FOR /F delims= %%i IN (temp.txt) DO echo?? %%~ipausedel 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?? %%~fipause执行后显示内容如下C:\Documents and Settings\Administrator\桌面\test.batC:\Documents and Settings\Administrator\桌面\test.vbs当我把代码中的 %%~fi直接改成%%iFOR /F delims== %%i IN (dir /b) DO @echo?? %%ipause执行后就会显示以下内容:test.battest.vbs通过对比,我们很容易就看出没有路径了,这就是将 %I 扩展到一个完全合格的路径名的作用也就是如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名,自己动手动实验下就知道了!三、 %~dI??????? - 仅将 %I 扩展到一个驱动器号看例子:代码如下,我还是放到桌面执行!FOR /F delims== %%i IN (dir /b) DO @echo?? %%~dipause执行后我CMD里显示如下C:C:我桌面就两个文件test.bat,test.vb
您可能关注的文档
最近下载
- 《阳光下的世界》小学五年级美术PPT课件.pptx VIP
- 《物业管理师》三级考试练习题及参考答案.docx
- 2025秋语文二年级上册部编版-第3单元-教案.docx VIP
- 2025年高考语文二轮复习(新高考通用)专题13主旨意蕴题(练习)(学生版+解析).docx VIP
- 见证取样送检及检验批划分计划.pdf VIP
- BZ-120Ⅲ高速理瓶机使用说明书.pdf
- 2013混凝土配合比材料成本测算表.doc VIP
- 300T汽车吊性能说明书-XCA300_1全地面起重机技术规格书+[主臂风电臂加超起].pdf VIP
- 部编版(人教版)九年级语文上册教材解析及教学建议.pptx VIP
- 《思政教材分析与教学设计》课程教学大纲.docx VIP
文档评论(0)