Windows Bat 之For 循环

 

1. .bat中For 循环基本用法。

使用 "delims=" 指定分隔符,/f 默认是以空格或者Table 键作为分隔符

无论in后的集是哪种形式,for/f 都最终分解为字符串,按需要是否“忽略几行”(skip=)、“用什么刀来切分”(delims= )、“最多只需取哪几段”(tokens=)将集里形成的字符串,逐行地分段赋给%或%%后的变量及可能顺延扩展出的变量,以执行do后的命令,每一行即为一轮循环。

可参考链接:

https://www.jb51.net/article/93171.htm

1.1 格式

在cmd窗口中:

FOR %variable IN (set) DO command [command-parameters]

在Bat文件中:

FOR %%variable IN (set) DO command [command-parameters]

注意点:在cmd窗口中,for之后的形式变量I必须使用单百分号引用,即%i;而在批处理文件中,引用形式变量i必须使用双百分号,即%%i。
For语句的基本要素都有些什么:
1、for、in和do是for语句的关键字,它们三个缺一不可;
2、%%I是for语句中对形式变量的引用,就算它在do后的语句中没有参与语句的执行,也是必须出现的;
3、in之后,do之前的括号不能省略;
4、set 表示字符串或变量,command表示字符串、变量或命令语句;

 

实用举例

1.1 列出当前路径下的所有txt 文件。

for %%i in (??.txt) do echo "%%i"

2 .bat中寻找环境变量并激活keil build

 

@echo off
echo %PATH%
set hv=UV4.exe
echo %path% >.txt
cd. > path.txt
:s
for /f "delims=; tokens=1*" %%a in (.txt) do (
echo %%a
echo %%a >> path.txt
echo %%b > .txt 
echo %%a| findstr %hv% >nul && (
    echo %%a 包含%hv%
    set UV=%%a
) || (
    echo %%a 不包含%hv%
)
findstr ";" .txt >nul && goto s 
)
del .txt /q
del path.txt /q

echo %UV%


cd /d %~dp0
cd project
echo %~dp0
::set UV=D:\Keil_v5\UV4\UV4.exe
%UV% -j0 -b aw_hal_gpio_led.uvprojx -o .\build_log.txt
type build_log.txt
echo Done.
pause

>nul可以加了 >nul 就可以不打印 echo 的内容

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值