.bat文件批处理命令语法格式ech,goto,set,for,call,choise,at,set,定时关机命令

本文详细介绍了DOS批处理文件(.bat)的性质和用途,包括echo、@、rem、pause、call、goto、choice、if、for、ping、at、set、setlocal等常用命令的语法和示例。批处理文件常用于自动化日常任务和简化多步骤操作,通过if和for等命令可以实现条件判断和循环,大大提高了效率。
摘要由CSDN通过智能技术生成

bat批处理文件是什么

bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。

在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们 。

使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。入侵者常常通过批处理文件的编写来实现多工具的组合入侵、自动入侵及结果提取等功能 。

bat命令语法

echo 命令

echo命令用于打开或关闭请求回显,也可用于显示消息

语法格式echo [on/off/message],其中/代表选择,[]表示类。

这条命令的含义代表有3种输出方式:

echo on;
echo off;
echo message

@命令

@用于隐藏@后面的命令。批处理文件执行时,在命令行窗口中不会显示当前正在运行的命令
@echo off 就不会显示这条echo off命令

rem 命令

注释命令,只是起一个注释的作用。

语法格式:rem message

如:@rem 这是注释 即隐藏命令,又是注释语句

pause 命令

当批处理文件运行到pause命令时,会出现请按任意键继续...的提示,然后等待用户操作,不至于立马关闭窗口,或者执行后面的命令

call 命令

用于调用另一个批处理程序,当前程序会暂时挂起,当另一个批处理程序运行完毕后,会返回继续执行

goto 命令

goto命令用于跳转到标签指定的位置并从标签的下一行命令开始执行。
命令格式goto label,其中label为标签

echo start goto
goto fun2

:fun2
echo your select fun2
goto end

choice 命令

choice可以让用户输入一个字符,从而运行不同的命令 。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回选项编号1234……

如:choice /c:123 请输入选项
将显示
请输入选项[1,2,3]?

举例

@echo off
choice /c:123
if errorlevel 3 goto fun1
if errorlevel 2 goto fun2
if errotlevel 1 goto end

:fun1
echo your select fun1
goto end

:fun2
echo your select fun2
goto end

:end
echo baybay
pause

用户可选择1,2,3 ,然后if语句将作出判断,

  • 3表示执行标号为defrag的程序段,
  • 2表示执行标号为mem的程序段,
  • 1表示执行标号为end的程序段,
  • 每个程序段最后都以goto end将程序跳到end标号处

if 命令

if 有三种格式:

  1. if "参数" == "字符串" 待执行的命令
    参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句
if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
  1. if exist 文件名 待执行的命令
    如果有指定的文件,则条件成立,运行命令,否则运行下一句
if existconfig.sysedit echo 11111111111111111
  1. if errorlevel / if not errorlevel 数字 待执行的命令
    如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句
if errorlevel 2 goto x2

for 命令

for命令主要用于循环调用,该命令功能十分强大
语法为:
FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN (command) DO command
`
实例

--显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)
for %%i in (t*.*) do echo %%i

--显示d:\mydocuments\目录下与*.doc相匹配的文件
for %%i in (d:\mydocuments\*.doc) do @echo %%i

--显示c盘根目录下的所有目录
for /d %%i in (c:\*) do echo %%i

--显示当前目录下名字只有1-3个字母的目录
for /d %%i in (???) do echo %%i

--枚举了c盘所有目录
for /r c:\ %%i in (boot.ini) do echo %%i

--枚举d\backup目录
for /r d:\backup %%i in (1) do echo %%i

--很好的搜索命令,列举boot.ini存在的目录
for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i

--输出1 2 3 4 5
for /l %%i in (1,1,5) do @echo %%i 

--输出1,35,79
for /l %%i in (1,2,10) do @echo %%i

--输出100,80,60,40,20
for /l %%i in (100,-20,1) do @echo %%i

--打开5个CMD窗口
for /l %%i in (1,1,5) do start cmd

--建立从1~55个文件夹
for /l %%i in (1,1,5) do md %%i

--删除从1~55个文件夹
for /l %%i in (1,1,5) do rd /q %%i

--分析文件的例子
FOR /F "eol=; tokens=1,2* delims=,- " %%i in (d:\test.txt) do echo %%i %%j %%k

--分析字符串的例子:
for /f "tokens=1,2,3* delims=-, " %%i in ("aa bb,cc-dd ee") do echo %%i %%j %%k %%l

--分析命令输出的例子:
FOR /F "tokens=1* delims==" %%i IN ('set') DO @echo [%%i----%%j]

--如果使用了usebackq参数后,命令如下,结果与上面的完全相同。
--分析文件的例子
FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%i in ("d:\test.txt") do echo %%i %%j %%k

--分析字符串的例子:
for /f "usebackq tokens=1,2,3* delims=-, " %%i in ('aa bb,cc-dd ee') do echo %%i %%j %%k %%l

--分析命令输出的例子:(会枚举当前环境中的环境变量名称和值。)
FOR /F "usebackq tokens=1* delims==" %%i IN (`set`) DO @echo [%%i----%%j]

ping命令

Ping命令可以测试计算机名和计算机的IP地址是否能连接
ping 192.168.8.168

AT命令

AT 命令安排在特定日期和时间运行命令和程序。计时任务
要使用 AT 命令,计划服务必须已在运行中。
语法
AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTⅣE] [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

  • \\computername 指定远程计算机。如果省略这个参数,会计划在本地计算机上运行命令。
  • id 指定给已计划命令的识别号。
  • /delete 删除某个已计划的命令。如果省略 id,计算机上所有已计划的命令都会被删除。
  • /yes 不需要进一步确认时,跟删除所有作业的命令一起使用。
  • time 指定运行命令的时间。
  • /interactive 允许作业在运行时,与当时登录的用户桌面进行交互。
  • /every:date[,...] 指定在每周或每月的特定日期运行命令。如果省略日期,则默认为在的运行。
  • /next:date[,...] 指定在下一个指定日期(如,下周四)运行命令。如果省略日期,则默认为在的运行。
  • "command" 准备运行的 Windows NT 命令或批处理程序。
--定时关机,晚上23:00时,在60秒内关机!
at 23:00 shutdown -s -f -t 60

set命令

set用于设置环境变量

@echo off
set xxx = "hello world"
set xyz = "batch"
set x

set xxx =
set x

set xyz 
set x
  • set xxx = “hello world” 是定义变量,并把其值设定为"hello world"
  • set x 是查询所有以x开头的变量,
  • set xxx = 表示删除xxx这个变量。

setlocal命令

setlocal主要针对临时环境变量,不会影响到系统的变量环境设置,应与endlocal联用。

@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java全栈开发架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值