windows批处理for循环用法



windows批处理for循环用法

注意 空格+ ^  符号 用于将一行写不下的windows bat批处理程序分成多行完成。

for /L %%i in (1,1,5) ^
do echo %%i  ^     

echo "done"


1 FOR循环 
FOR循环的使用有多种,具本可在cmd中键入FOR /?查看帮助文件。但以下三种格式在实际使用中常用到。 
1.1 FOR %%i IN (…) DO  
此类循环使用最常见,定义的变量直接取代IN列表中的值,如下所示: 
FOR %%i IN (475 515 59 67 74 795 102 122) DO ( 
AMR_NB_ENC.exe  -dtx  MR%%i enc_in\1.pcm  enc_out\1_%%i_1.cod ) 
这就是一个AMR全部速率编码的实例,它等价于以下批处理: 
AMR_NB_ENC.exe  -dtx  MR475 enc_in\1.pcm  enc_out\1_475_1.cod  AMR_NB_ENC.exe  -dtx  MR515 enc_in\1.pcm  enc_out\1_515_1.cod  AMR_NB_ENC.exe  -dtx  MR59 enc_in\1.pcm  enc_out\1_59_1.cod  AMR_NB_ENC.exe  -dtx  MR67 enc_in\1.pcm  enc_out\1_67_1.cod  AMR_NB_ENC.exe  -dtx  MR74 enc_in\1.pcm  enc_out\1_74_1.cod  AMR_NB_ENC.exe  -dtx  MR795 enc_in\1.pcm  enc_out\1_795_1.cod  AMR_NB_ENC.exe  -dtx  MR102 enc_in\1.pcm  enc_out\1_102_1.cod  AMR_NB_ENC.exe  -dtx  MR122 enc_in\1.pcm  enc_out\1_122_1.cod  
1.2 FOR /L %%i IN (start, step, end) DO 
此循环类似于C语言中的for循环,它将依据IN列表中的表达式生成一个序列,如下所示: 
FOR /L %%i IN (1, 1, 5) DO ( 
AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_%%i.dec  1 %%i 1 ) 
%%i 将生成为如下序列(1 2 3 4 5),以上批处理等价于: 
AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_1.dec  1 1 1  AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_2.dec  1 2 1  AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_3.dec  1 3 1  AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_4.dec  1 4 1  AMR_lost.exe  enc_out\1_122_1.cod dec_in\1_122_1_5.dec  1 5 1  
类似,(5, -1, 1)将生成序列(5 4 3 2 1)。

1.3 FOR /R path_name %%i IN (FILE_TYPE) DO  
此批理多用来完成特定文件夹下指定文件的搜索。以C:\Windows文件夹为例,我们可以通过以下批处理完成该目录下(包括其下的子目录)所有exe文件的搜索: 
FOR /R C:\windows %%i IN (*.exe) DO ( echo %%i >> file_list.txt ) 
结果为: 
C:\windows\ALCMTR.EXE  C:\windows\ALCWZRD.EXE  C:\windows\BtwIEProxy.exe  C:\windows\explorer.exe  C:\windows\hh.exe  C:\windows\MicCal.exe  C:\windows\NOTEPAD.EXE  C:\windows\regedit.exe  C:\windows\regjpwb.exe  C:\windows\RTHDCPL.EXE  
C:\windows\RtkAudioService.exe  C:\windows\RTLCPL.EXE  C:\windows\RtlUpd.exe  C:\windows\SkyTel.exe  C:\windows\SOUNDMAN.EXE  C:\windows\TASKMAN.EXE  C:\windows\twunk_16.exe  C:\windows\twunk_32.exe  C:\windows\unvise32.exe  C:\windows\vncutil.exe  C:\windows\winhelp.exe  C:\windows\winhlp32.exe  C:\windows\xinstaller.exe  
C:\windows\$hf_mig$\KB2079403\spuninst.exe  C:\windows\$hf_mig$\KB2079403\update\update.exe  C:\windows\$hf_mig$\KB2115168\spuninst.exe  C:\windows\$hf_mig$\KB2115168\update\update.exe  …… 
注意:path中不能有空格。 
以Program Files文件夹为例,执行是失败的,这时,可以通过如下的方法执行: 
cd C:\Program Files 
FOR /R %%i IN (*.exe) DO ( echo %%i >> file_list.txt ) 
结果为:

C:\Program Files\360\360Safe\360AppLoader.exe  C:\Program Files\360\360Safe\360Diagnose.exe  C:\Program Files\360\360Safe\360FunPro.exe  C:\Program Files\360\360Safe\360gprocmod.exe  C:\Program Files\360\360Safe\360leakfixer.exe  C:\Program Files\360\360Safe\360Restore.exe  C:\Program Files\360\360Safe\360rpt.exe  C:\Program Files\360\360Safe\360Safe.exe  …… 
小心:这时file_list.txt放在C:\Program Files文件夹下面,不要找错了哦!


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值