Bat 批处理脚本 (常用)
Bat 批处理脚本
=== Content ===
1. Rem 和 ::
Rem 为注释命令, 能回显.
:: 为符号注释, 不能回显.
% 行内注释内容 % ===== (不常用)(慎用)
注:
回显:
回显, 就是显示正在执行的批处理命令及执行的结果等.
不回显:
与上述回显, 方式相反
例如:
(在 cmd 上运行结果如下:)
rem hello 在下面会显示空白的一行
:: hello 在下面不会显示空白的一行
2. Echo 和 @
@ 字符 始终不回显, 不论你是 echo on/off 状态
@ 放在命令前即关闭回显
echo
(1)开 / 关 回显
echo on/off
(2)显示当前 ECHO 设置状态
echo
(3)输出提示信息
echo Content
(4)关闭 DOS 命令提示符
echo off
(5)输出空行, 即相当于输入一个回车
echo .
(6)答复命令中的提问
格式: ECHO 答复语 | 命令文件名
例子:
- C:>ECHO Y|CHKDSK/F
- C:>ECHO Y|DEL A :*.*
(7)建立新文件或增加文件内容
格式:
echo 文件内容> 文件名 ======= 在文件 中写入『文件内容』
echo 文件内容>> 文件名 ======= 在该文件末追加『文件内容』
例子:
C:>ECHO @ECHO OFF>AUTOEXEC.BAT 建立自动批处理文件
C:>ECHO C:\CPAV\BOOTSAFE>>AUTOEXEC.BAT 向自动批处理文件中追加内容
C:>TYPE AUTOEXEC.BAT 显示该自动批处理文件
(8)向打印机输出打印内容 或 打印控制码
格式: echo 打印机控制码>; PRN
echo 打印内容>;PRN
例子:
下面的例子是向 M-1724 打印机输入打印控制码.<Alt>156 是按住 Alt 键在小键盘键入
156, 类似情况依此类推:
- C:>ECHO +156+42+116>;PRN(输入下划线命令 FS*t)
- C:>ECHO [[email protected]][email protected]>;PRN[/email](输入初始化命令[email protected])
- C:>ECHO.>;PRN(换行)
(9)使喇叭鸣响
C:>ECHO ^G
"^G" 是在 dos 窗口中用 Ctrl+G 或 Alt+007 输入, 输入多个 ^G 可以产生多声鸣响.
使用方法是直接将其加入批处理文件 或 做成批处理文件调用
这里 "^G" 属于特殊符号的使用, 请看本文后面的章节
Pause
(1)暂停 press any key to continue
Pause
(2)自定义停止 提示语
格式:
echo 其他提示语 & pause> nul
errorlevel
程序运行后返回码 echo %errorlevel%
用处: 判断命令是否执行成功
默认值: 0(正确)
出错 errorlevel 会设置为 1
title
更换 cmd 窗口名字
用法:
title 新窗口名字
color
更改 cmd 的 前 \ 后景颜色属性
用法:
color + attr
attr 是 两位的十六进制数, 第一位为前景色, 第二位则为后景色
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有 attr 参数, 则返回成 cmd 启动时的属性
mode
配置系统设备
例子:(更改 cmd 窗口大小 和 颜色)
mode con cols=80 lines=20 & color f2
goto 和 :
":"
用来创建标签
用法:
":" + 标签名
例子:
- if {
- %1
- }=={
- } goto noparms
- if "%2"=="" goto noparms
- goto:
跳转到某标签
用法:
goto 标签名
例子:
- @echo off
- :start
- set /a var+=1
- echo %var%
- if %var% leq 3 goto start
- pause
运行结果:
1
2
3
4
start
新开一个程序执行
例:
start explorer d: 调用图形界面打开 D 盘
if
用法:
- (1)IF [not] ErrorLevel number command
- (2)IF [not] string1==string2 command
- (3)IF [not] Exist filename command
例子:
echo off
IF EXIST autoexec.bat echo 文件存在!
IF not EXIST autoexec.bat echo 文件不存在!
%
用法:
(1)% 变量名 %
引用变量名的值
例子:
set file="test.txt" rem 注意: 变量名 file 后的 = 号 和 值不要有空格
(2)%0~%9
表示的是从外部参数引用的值
%0 就是程序本身, 或者路径
%1 第一个参数 ... %9 第 9 个参数
<>& <& 重定向符
- @echo off
- echo 2005-05-01>temp.txt
- date <temp.txt
- del temp.txt
这样就可以不等待输入直接修改当前日期
>&, 将一个句柄的输出写入到另一个句柄的输入中.
<&, 刚好和>& 相反, 从一个句柄读取输入并将其写入到另一个句柄输出中.
常用句柄: 0,1,2, 未定义句柄: 3-9
1>nul 表示禁止输出正确的信息
2>nul 表示禁止输出错误信息.
其中的 1 与 2 都是代表某个数据流输入输出的地址(NT CMD 称之为句柄, MSDOS 称之为设备).
句柄 0: 标准输入 stdin, 键盘输入
句柄 1: 标准输出 stdout, 输出到命令提示符窗口(console, 代码为 CON)
句柄 2: 标准错误 stderr, 输出到命令提示符窗口(console, 代码为 CON)
其中的 stdin 可被 <重定向, stdout 可被>,>> 重定向.
我们已经知道读取文本中的内容可以用 for 命令,
但如果只需要读取第一行用 for 命令就有点麻烦. 简单的办法如下:
- @echo off
- set /p str=<%0
- echo %str%
- pause
| 命令管道符
格式: cmd1 | cmd2 | cmd3 |...
说明: 将第一条命令的结果作为第二条命令的参数来使用
例如:
dir C:\|find "txt"
上述命令解释: 查找 C:? 下 所有匹配的 "txt" 字符串
^ 转义字符
^ 相当于 C 语言的 "/" 转义字符
DOS 循环
for 循环:
格式:
- for %%var in (set) do Command [command-parameters]
- command-parameters:
有四个参数: /d /l /r /f
系统变量
用法:
可以通过 % 系统变量名 % 查看当前系统变量的值
例子:
%HOMEPATH%
自定义变量
(1)自定义变量
set 变量名 = 值
(2)手动输入变量的值 set /p
@echo off
set /p var = 请输入变量的值
echo %var%
pause
var 变量名 = 号右边的是提示语, 不是变量的值
if...else... 条件语句
在 if...else 语句中 还有判断数字的符号:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于或等于
例子:
- IF EXIST filename (
- del filename
- ) ELSE (
- echo filename missing
- )
random (随机数 %random%)的应用技巧
例子:
- @echo off
- setlocal enabledelayedexpansion
- for /L %%i in (1 1 5) do (
- set /a randomNum=!random!%%100
echo 随机数:!randomNum!
- )
- pause
Bat 脚本(常用命令)
来源: http://www.bubuko.com/infodetail-3020957.html