windows bat(批处理)——基础语法
1. @
行首有了它的话,这一行的命令就不显示了。
2. echo
2.1 echo [{on|off}] [message]
输出,回显。
2.2 on | off
它其实是一个开关命令,就是说它只有两种状态:打开和关闭。于是就有了echo on和echo off两个命令了。
(1)echo off
只显示执行结果
(2)echo on (默认)
显示执行命令(除echo)和执行结果
(3)> 输出重定向
创建或清空文件,然后把数据输出到文件
echo hi > a.txt
把数据追加到文件
echo this is a text >>a.txt
echo hi > a.txt
type a.txt
echo this is a text >>a.txt
type a.txt
3. 注释
:: 或 rem
4. ":"和 goto
(1)goto
跳转到标签
(2):
定义一个标签
Sample:
[python]
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
5.Pause
运行 Pause 命令时,将显示下面的消息:
[python]
Press any key to continue . . .
Sample:
[python]
@echo off
:begin
echo Pause
pause
goto begin
6.Call 命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
语法
call [Drive:][Path] FileName [BatchParameters] [:label [arguments]
参数
[Drive:}[Path] FileName
指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。
7.start 命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
入侵常用参数:
MIN 开始时窗口最小化
SEPARATE 在分开的空间内开始 16 位 Windows 程序
HIGH 在 HIGH 优先级类别开始应用程序
REALTIME 在 REALTIME 优先级类别开始应用程序
WAIT 启动应用程序并等候它结束
parameters 这些为传送到命令/程序的参数
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。
8.choice 命令
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (应先判断数值最高的错误码)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都 以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
9. %x 参数
%1 -- 第1个参数
%2 -- 第2个参数
%3 -- 第3个参数
....
net use %1ipc$ %3 /u:"%2"
%1 -- IP
%2 -- username
%3 -- password