赞
踩
解释: %严格说不算是命令,它只是批处理中的参数而已,引用变量用%variableName%,也可以添加行内注释
格式: %注释内容% (作为行内注释不能出现重定向和管道符)
实例:
@echo off
set var=10
echo 引用变量的值
echo %var%
echo 行内注释
echo %行内注释片段% %var%
pause
DOS的标准输入输出通常实在标准键盘和显示器上进行的,利用重定向可以方便将输入输出
改向磁盘文件或设备
1. > >>:输出重定向命令
>: 将命令发送到文件或设备
>>: 将命令输出添加到文件结尾,而不删除文件中已有的内容
2. <: 输入重定向命令
<:从文件而不是键盘上获取命令所需的输入
实例
@echo off
echo “>的示例”
echo 创建一个文件 > .\temp.txt
echo 文件内容: & type .\temp.txt
echo.
echo “>>的示例”
echo 向temp.txt文件中新增内容 >> .\temp.txt
echo.
echo 新增后的文件内容: & type .\temp.txt
echo “<的示例”
set /p var=“” < .\temp.txt
echo 重输入给变量的值:%var%
pause
格式: command_1|command_2
将第一条命令的结果作为第二条命令的参数来使用
实例:
@echo off
rem 创建一个文件
echo “hello world” > .\temp.txt
echo “one” >> .\temp.txt
echo “two” >> .\temp.txt
echo 查找是否有one字符串
type .\temp.txt | find “one”
if errorlevel 1 goto 1
if errorlevel 0 goto 0
:0
echo 有
goto exit
:1
echo 没有
goto exit
:exit
pause
^的作用与其它编程语言的"\"类似,将一些已存在的特殊字符,转义为普通字符
实例:
echo aa ^>temp.txt
从输出结果可以看到echo将 aa ^> temp.txt当做内容输出了,没有创建一个temp.txt文件
另外^除了有转义的作用,还有当作续作符号的作用
实例
@ echo off
echo 续作符号输出效果:
echo 你好^
我好^
大家好
echo.
echo 普通输出效果:
echo 你好我好大家好
pause
&,&&,||为组合命令,顾名思义就是可以将多条命令组合组合起来当一个命令来执行
&符号: 允许在一行中使用2个以上不同命令,如果第一个命令执行失败时,并不影响后面的命令执行
执行顺序是从左到右
实例
dir w:\ & dir c:\ & dir d:
结果:
从结果来看,没有w磁盘,报找不到指定路径,并不影响后面的命令执行
&&符号: 与&相同可以执行多条命令,但不同的是,当前面的命令执行失败,将不在执行后面的命令,前面的
命令正确才会往后执行
实例:
dir c:\ && dir w:\ && dir d:
结果:
从结果来看,执行dir w:\失败之后不会执行后面命令dir d:\
||符号:与&&相同可以执行多条命令,但是不同的是,当第一条命令执行失败才执行第二条命令,
当碰到执行正确的命令将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令
实例:
dir w:\ || dir c:\ || dir d:
从结果来看dir w:\执行失败执行dir c:,执行dirt c:\成功就不会执行后面dir d:\命令
备注: 命令执行的优先级: 管道命令>重定向命令>组合命令
"":字符界定符,允许在字符串周静包含空格,比如进入包含空格的文件夹或者文件(cd program files"")
,: 逗号相当与空格,在某些情况下","当作空格使用,比如尝试执行dir,c:\
; :分号当命令相同时,可以将不同的目标用";"分隔开,并且执行效果不变,如果执行过程中发生错误
则返回错误报告,但是程序仍会继续执行(这个执行是有条件的)
实例1:
dir c:;w:;d:
结果
实例2:
dir c:;d:\temp
结果
从实例1和实例2,如果磁盘不存在,则整条命令直接报错误信息不执行,但是D盘没有temp文件继续执行
总结: 1. 如果目标路径不存在,则整个语句不执
2.如果路径存在,仅文件不存在,则继续执行,并且提示文件不存在的错误.
(): 括号,在批处理中有特殊作用,括号中可以包含多条命令,这些命令会被看做一个整体
备注: 通常用于for语句或者if语句中或者循环语句中,也可以单独使用
实例:
命令: echo 1 & echo 2 & echo 3
也可以写成:
(
echo1
echo2
echo3
)
!: 感叹号,主要是在变量延迟问题中,用来表示变量,即%var%应该表示为!var!
*文件通配符: 代表全部字符
?文件通配符: 代表单个字符
实例:
@ echo off
rem 创建测试使用的文件
echo “1” >.\testFile_one.txt
echo “1” >.\testFile_1.txt
echo “2” >.\testFile_2.txt
echo “2” >.\testFile_two.txt
echo “text” > testFile.txt
echo “text” > textFile.txt
echo 测试文件创建完毕
echo.
echo ": 代表全部字符"
for %%i in (testFile_.txt) do (
echo %%i
)
echo.
echo “?:代表单个字符”
for %%i in (te?tFile.txt) do (
echo %%i
)
echo.
for %%i in (te?tFile*.txt) do (
del .%%i
)
echo 收尾工作完成
pause
从结果看,“testFile_*.txt”是查找以”testFile_“开头忽略后面所以字符的文件名
“te?tFile.txt”是查找以“te“与”tFile.txt”之间字符任意单个字符组成的文件名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。