Bat语法快速入门

概述

后缀为bat或cmd的文件就是window下命令行可以执行的脚本了,一般称为批处理脚本,类似于Linux系统下的shell脚本。利用它,我们可以快速实现一些简易功能。

常用指令

书写bat文件,想要双击bat后窗口继续保留,可在末尾加上:

cmd /k

cmd /k 是执行完dir命令后不关闭命令窗口

调用外部bat文件:

call b.bat

执行结束暂停

pause

: 代表批处理标签引导符,用于goto到特定标签

START 启动另一个窗口来运行指定的程序或命令。

start a.bat

指定工作目录执行

start cmd /k "d: && dir"

call cmd /k "d: && dir"

变量

设置全局变量(不要在名称和值之间使用空格,SET覆盖任何现有变量):

set a=1

Set /A 开关支持算数操作

SET /A four=2+2

4

输出变量:

echo %a%

获取参数变量:

echo %0
echo %1

动态变量:

%CD% - 扩展到当前目录字符串。

%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。

%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。

%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。

%CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。

%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。

%HIGHESTNUMANODENUMBER% - 扩展到此计算机上的最高 NUMA 节点号。

特殊变量:

%~dp0:代表的是脚本文件在磁盘的位置

%~dpI 第I个文件路径参数的完整父级路径

%~nxI 第I个文件路径参数的文件名(包括扩展名)

%~nI 第I个文件路径参数的文件名(不包括扩展名)

~用法:

%~1:当参数以引号开头时,%~1会自动将引号删除。

%1:当参数以引号开头时,%1不会自动将引号删除。

注释

  1. 官方推荐: REM (Remark) 关键字。

REM This is a comment!

  1. 使用 ::,两个冒号。

:: This is also a comment too! (usually!!)

有几个地方 :: 会导致错误。比如,一个 for 循环中使用 :: 就会导致错误。如果有这种情况,只需要换回 REM 即可。

回显

回显就是执行命令前的"C:\Users"这种东西

关闭回显:

echo off

开启回显

echo on

@:作用是后面接的命令关闭回显

@echo a

a

丢弃输出

echo a > NUL

逻辑

检查文件或文件夹是否存在:

if语句:

IF EXIST "a.txt" echo found

IF NOT EXIST "temp.txt" ECHO not found

If 和 Else 语句:

IF EXIST "temp.txt" (

  ECHO found

) ELSE (

  ECHO not found

)

检查变量是否与字符串匹配

SET var=Hello, World!

IF "%var%"=="Hello, World!" (

  ECHO found

)

不区分大小写来比较:

SET var=Hello, World!

IF /I "%var%"=="hello, world!" (

ECHO found

)

读取用户输入

set /p var="prompt"
set /p confirm="please confirm:"
echo %confirm%

||和&&的用法:

使用&&连接的两条命令,当第一条执行成功之后(%ERRORLEVEL%是0),紧接着会执行第二条命令。

DIR myfile.txt >NUL 2>&1 && TYPE myfile.txt

||则相反,当第一条命令执行失败后,执行第二条命令。

DIR myfile.txt >NUL 2>&1 || CALL :WARNING file not found - myfile.txt

也可以把这两个技巧结合起来使用,通过()来构造,当第一条执行失败后,执行()中的两条语句。

DIR myfile.txt >NUL 2>&1 || (ECHO %me%: WARNING - file not found - myfile.txt >2 && EXIT /B 1)

退出

EXIT

退出 CMD.EXE 程序(命令翻译程序)或当前批处理脚本。

EXIT [/B] [exitCode]

 /B     指定要退出当前批处理脚本而不是 CMD.EXE。如果从一个批处理脚本外执行,则会退出 CMD.EXE

exitCode 指定一个数字号码。如果指定了 /B,将 ERRORLEVEL设成那个数字。如果退出 CMD.EXE,则用那个数字设置过程退出代码。

字符串操作

拼接

直接放在一起即可

set aa=aabbcc
set bb=ddeeff
echo %aa%%bb%

截取:

set testStr=abcdefghijklmnopqrstuvwxyz0123456789
echo 原始字符串 %testStr%
echo 提取前五个字符串:%testStr:~0,5%
echo 提取最后五个字符串:%testStr:~-5%
echo 提取第一个到倒数第六个字符串:%testStr:~0,-5%
echo 提取五个字符串,从第四个字符开始:%testStr:~3,5%

替换:

set repStr=aaabbbcccdddeeefff

echo 替换之前:%repStr%

echo 替换后:%repStr:aa=zz%

例子

快速启动elasticsearch相关程序:

:: 启动elasticsearch
start cmd /k "d: && cd D:\InstallDir\elk\elasticsearch-7.9.3-windows-x86_64\elasticsearch-7.9.3\bin\ && D:\InstallDir\elk\elasticsearch-7.9.3-windows-x86_64\elasticsearch-7.9.3\bin\elasticsearch.bat"

echo "started elastic-search"

:: 启动elasticsearch-head
start cmd /k "d: && cd D:\InstallDir\elk\elasticsearch-head && npm run start"

echo "started elasticsearch-head"

:: 启动kibana
start cmd /k "d: && cd D:\InstallDir\elk\kibana-7.9.3-windows-x86_64\bin && D:\InstallDir\elk\kibana-7.9.3-windows-x86_64\bin\kibana.bat"

echo "started kibana"

echo on

cmd /k

附录

命令列表

ASSOC  显示或修改文件扩展名关联。

AT    计划在计算机上运行的命令和程序。

ATTRIB  显示或更改文件属性。

BREAK  设置或清除扩展式 CTRL+C 检查。

CACLS  显示或修改文件的访问控制列表(ACLs)。

CALL   从另一个批处理程序调用这一个。

CD    显示当前目录的名称或将其更改。

CHCP   显示或设置活动代码页数。

CHDIR  显示当前目录的名称或将其更改。

CHKDSK  检查磁盘并显示状态报告。

CHKNTFS 显示或修改启动时间磁盘检查。

CLS   清除屏幕。

CMD   打开另一个 Windows 命令解释程序窗口。

COLOR  设置默认控制台前景和背景颜色。

COMP   比较两个或两套文件的内容。

COMPACT 显示或更改 NTFS 分区上文件的压缩。

CONVERT 将 FAT 卷转换成 NTFS。您不能转换当前驱动器。

COPY   将至少一个文件复制到另一个位置。

DATE   显示或设置日期。

DEL   删除至少一个文件。

DIR   显示一个目录中的文件和子目录。

DISKCOMP 比较两个软盘的内容。

DISKCOPY 将一个软盘的内容复制到另一个软盘。

DOSKEY  编辑命令行、调用 Windows 命令并创建宏。

ECHO   显示消息,或将命令回显打开或关上。

ENDLOCAL 结束批文件中环境更改的本地化。

ERASE  删除至少一个文件。

EXIT   退出 CMD.EXE 程序(命令解释程序)。

FC    比较两个或两套文件,并显示不同处。

FIND   在文件中搜索文字字符串。

FINDSTR 在文件中搜索字符串。

FOR   为一套文件中的每个文件运行一个指定的命令。

FORMAT  格式化磁盘,以便跟 Windows 使用。

FTYPE  显示或修改用于文件扩展名关联的文件类型。

GOTO   将 Windows 命令解释程序指向批处理程序中某个标明的行。

GRAFTABL 启用 Windows 来以图像模式显示扩展字符集。

HELP   提供 Windows 命令的帮助信息。

IF    执行批处理程序中的条件性处理。

LABEL  创建、更改或删除磁盘的卷标。

MD    创建目录。

MKDIR  创建目录。

MODE   配置系统设备。

MORE   一次显示一个结果屏幕。

MOVE   将文件从一个目录移到另一个目录。

PATH   显示或设置可执行文件的搜索路径。

PAUSE  暂停批文件的处理并显示消息。

POPD   还原 PUSHD 保存的当前目录的上一个值。

PRINT  打印文本文件。

PROMPT  更改 Windows 命令提示符。

PUSHD  保存当前目录,然后对其进行更改。

RD    删除目录。

RECOVER 从有问题的磁盘恢复可读信息。

REM   记录批文件或 CONFIG.SYS 中的注释。

REN   重命名文件。

RENAME  重命名文件。

REPLACE 替换文件。

RMDIR  删除目录。

SET   显示、设置或删除 Windows 环境变量。

SETLOCAL 开始批文件中环境更改的本地化。

SHIFT  更换批文件中可替换参数的位置。

SORT   对输入进行分类。

START  启动另一个窗口来运行指定的程序或命令。

SUBST  将路径跟一个驱动器号关联。

TIME   显示或设置系统时间。

TITLE  设置 CMD.EXE 会话的窗口标题。

TREE   以图形模式显示驱动器或路径的目录结构。

TYPE   显示文本文件的内容。

VER   显示 Windows 版本。

VERIFY  告诉 Windows 是否验证文件是否已正确写入磁盘。

VOL   显示磁盘卷标和序列号。

XCOPY  复制文件和目录树。
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: -bat 批处理语法 -noeac 是一种在批处理脚本中使用的选项。这个选项的作用是禁用批处理脚本中的错误自动纠正功能。在默认情况下,当批处理脚本中发现错误时,系统会尝试自动修复这些错误,以保证脚本能够继续运行。然而,有时候我们不希望系统自动修复错误,而是希望脚本在遇到错误时立即停止执行。 使用 -noeac 选项可以达到禁用错误自动修正功能的效果。当在批处理脚本中添加了这个选项后,系统会忽略错误,并将错误信息输出到屏幕上,然后终止脚本的执行。这样可以及时发现脚本中的错误,并做出相应的修改,以确保脚本能够正常执行。 需要注意的是,禁用错误自动修正功能可能会导致脚本在遇到错误时无法继续执行。因此,在使用 -noeac 选项时,我们需要特别小心,确保脚本中的语法和逻辑都是正确的,以免出现严重的错误导致脚本无法正常执行。同时,及时查看错误信息并进行修正也是很重要的,这样可以提高脚本的可靠性和稳定性。 总的来说,-bat 批处理语法 -noeac 选项是一种在批处理脚本中禁用错误自动修正功能的方法,通过该选项可以在脚本运行时及早发现并修复错误,确保脚本能够正常执行。 ### 回答2: "bat 批处理语法 -noeac" 是指在批处理脚本中使用 -noeac 参数的情况。批处理是一种用于在 Windows 系统中自动化任务的脚本语言。 -noeac 是缩写,含义是 "No Extended Auto Codepage"。当使用 -noeac 参数时,批处理脚本不会自动选择扩展的自动代码页。 自动代码页是一种在批处理脚本中处理不同语言和字符集的功能。它可以根据系统中的本地设置自动切换代码页。但有时,可能需要禁用此功能,并手动指定代码页。 通过使用 -noeac 参数,批处理脚本将不再依赖于系统的自动代码页切换,而是需要手动指定所需的代码页。这样可以确保脚本在不同的系统和环境中始终以相同的代码页运行,确保脚本的一致性和可移植性。 要使用 -noeac 参数,在批处理脚本的开头添加以下内容: ``` @echo off chcp <代码页> ``` 其中,<代码页> 是你所需的代码页的数字。例如,要使用 UTF-8 代码页,可以将 <代码页> 设置为 65001。 总之,-noeac 是批处理脚本语法中的一种参数,用于禁用自动选择代码页的功能,确保脚本在不同环境中以相同的代码页运行。 ### 回答3: 在BAT批处理语法中,-noeac是一个无效的选项或参数。BAT批处理语法是一种用于编写批处理文件的脚本语言,用于自动化执行一系列命令和任务。 在BAT批处理中,可以使用各种命令和语法进行条件判断、循环、变量赋值、文件操作等操作。但是在批处理语法中,并没有名为-noeac的选项或参数。 如果你遇到了一个命令或软件提示使用-noeac选项,那可能是该命令或软件自定义的参数,与BAT批处理语法无关。在这种情况下,你应该查阅该命令或软件的官方文档或手册,以了解-noeac选项的具体含义和用法。 总之,从BAT批处理语法角度来说,-noeac不是一个有效的选项或参数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值