bat 条件与循环

if 标准格式

  • IF [NOT] ERRORLEVEL number command
  • IF [NOT] string1==string2 command string是数字时,会以数字比较
  • IF [NOT] EXIST filename command
    ()处理命令,后面的else才有效
echo hello 
REM one
IF %ERRORLEVEL%==0 (
  echo one
) ELSE (
  echo two
)
REM two
IF %ERRORLEVEL%==0 (echo one) ELSE echo two

for 标准格式

FOR %variable IN (set) DO command [command-parameters]
bat脚本中则使用%%variable

  • 文件处理
    eol=; 则;开头的忽略,视为注释
    tokens=1,3* 跳过第二个数据,*代表后面都设置了值,若去掉,只显示1,3表示的数据
    %%a 代表变量从a开始计数
FOR /F "eol=; tokens=1,3*" %%a IN (test.txt test1.txt) DO echo %%a %%b %%c
REM 文件名若用"",则需要加usebackq
FOR /F "usebackq eol=; tokens=1,3*" %%a IN ("test hh.txt") DO echo %%a %%b %%c
  • 变量处理
    FOR /L %variable IN (start,step,end) DO command [command-parameters]
    可增可减
FOR /L %%i IN (1, 1, 5) DO echo %%i
FOR /L %%i IN (5, -1, 1) DO echo %%i
  • 当前目录,递归查找数据
REM 只遍历当前目录
FOR /D %%i in (c:/*) DO echo %%i
REM 递归某路径下,查找某数据【例如 *.exe】
FOR /R D:/ %%i in (*.exe) DO echo %%i
  • 批量改名
setlocal EnableDelayedExpansion
FOR /R %%i IN (*) DO (
    REM 是否有后缀
    if "%%~xi"==".txt" (
        REM 不带后缀的文件名
        set prefixName=%%~ni
        rename %%i !prefixName!
    ) else (
        echo "world"
    )
)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,299评论 1 19
  • 命令简介 echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo命令将显示当前回显设置...
    Elevenstrings阅读 1,043评论 0 2
  • 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令...
    纪同学说阅读 1,532评论 0 1
  • 1.概述 脚本语言的应用还是很多的,从系统管理、数据管理、程序开发等。那什么是批处理文件呢? 扩展名是bat(在n...
    八神庵2020阅读 1,307评论 0 2
  • 一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo...
    gdoupangq阅读 650评论 0 1