输出第n个bat变量

输出第N个bat变量[原创]输出第N个bat变量文章标题:[原创]输出第N个bat变量顶部a11yesno发布于:2005-03-2506:43[楼主][原创]输出第N个bat变量hhhhhk:我在写一个批处理的时候,for/r%PATH%%%kin(%FILETYPE%)do[cmd]我现在要表示第3个%%k变量,要怎么样表示啊?首先来看个例子Quote:for/r%kin(*.exe)do@echo%kI:\test>for/r%kin(*.exe)do@echo%kI:\test\6.exeI:\test\all\sadsad.exeI:\test\bug\okok.exe这个命令是用来遍历当前目录以及子目录输出所有以exe为后缀的绝对路径Quote:假如我们要输出第三个变量也就是I:\test\bug\okok.exe我们可以把信息暂时输入到临时文件然后再进行提取for/r%kin(*.exe)do@echo%k>>allyesno.tmp然后提取for/F"skip=2"%iIN(allyesno.tmp)DO@echo%i由于for/r%kin(*.exe)do@echo%k>>allyesno.tmp的保存结果是以行来保存所以我们用for/F"skip=2"%iIN(allyesno.tmp)DO@echo%i的skip参数来进行跳跃行跳跃2行以后取第三行进行输出就是我们想要的结果输出第三个变量了Quote:另外几个值得注意的问题1skip<=0的时候程序会出错所以必须加入容错参数2如果只是需要显示第三行,而不是三行以及后面的行数程序无法使用tokens来过滤不需要显示的行为什么呢?因为tokens只支持26个令牌当输入结果大于26个的时候是不行的事实上用tokens也是颇麻烦所以下面的程序中用了另一种非常简单的方法3当需要输出的变量大于实际行数的时候则输出结果为空所以最好加入容错提示4记得检测allyesno.tmp这个临时文件因为我们是用>>将检测结果输出到临时文件中>>是追加所以必须检查目录里面是不是已经存在了allyesno.tmp的临时文件5%i与%%i这个仔细看windows的help就会知道当我们在bat里面的写法是%%i而命令行的写法就应该是%i6有可能出现的问题由于大家可能会对注册表中cmd的环境变量改动以至于造成bat运行不正常解决的办法是当进入cmd界面以后再次运行cmd.exe加载默认的环境变量这个方法我只在自己的机子上测试过仅共参考完整程序如下Quote:@echooffclsrem输出第N个bat变量byallyesno2005-3-25setaddskip=0setcount=0if"%1"==""echoplztypethefiletypewhatyouwanttofind&gotoreadmeif"%2"==""echoplztypethevariablenumberwhichyouwanttooutput&gotoreadmeifexistallyesno.tmpdelallyesno.tmp>nulfor/r%%kin(*.%1)do@echo%%k>>allyesno.tmpifnotexistallyesno.tmpechoerrorican'tfindanyfile&gotoendfor/f%%kin(allyesno.tmp)doset/acount=count+1if"%2"=="all"typeallyesno.tmp&gotoendif%2gtr%count%echoGOD!Variablenumberoverflow!Yougotashell????&gotoendif%2equ1for/F%%kIN(allyesno.tmp)DOif%%k==%%k@echo%%k&gotoendif%2leq0echoYoumakeajoke!&gotoendset/aaddskip=%2-1for/F"skip=%addskip%"%%kIN(allyesno.tmp)DOif%%k==%%k@echo%%k&gotoend:readmeechouse:nvfiletypevariablenumberechouse:nvfiletypeallechoexample:nvexe3echoexample:nvexeall:end将上面代码保存为nv.bat运行example:nvexe3是查找所有exe的文件并输出第三个变量结果example:nvexeall是查找所有exe的文件并输出所有结果ps:写这个程序的思路源至hhhhhk的提问[此贴被a11yesno在2005-03-2506:48重新编辑]附件:nv.rar(1K)下载次数:13(c)Copyleft2003-2007,EvilOctalSecurityTeam.ThisfileisdecompiledbyanunregisteredversionofChmDecompiler.Regsiteredversiondoesnotshowthismessage.YoucandownloadChmDecompilerat:http://www.zipghost.com/

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?