前几天,头跟我说让我学习维护咱们的报表服务器,我说怎么维护,头说,有问题就重启,(⊙o⊙),我已经无力吐槽了。。。
头说你重启服务器要先关掉tomcat,关掉三个服务,再启动tomcat,启动三个服务,还得按顺序启动,头这几天没来上班,报表服务器巨多问题,姐按照头的吩咐重启了几次之后,姐烦了,相同的操作,每次都要做1+3+1+3=8步,累不累,所以姐华丽丽地想到了bat批处理程序,姐之前只见过,没玩过,从头开始学起,同样谷歌第一个中文网页内容开始学起~
作者特别矫情+傲娇,在对批处理进行一番表白之后,(原作者看到不要骂我~),告诉我们他的爱人是:一堆dos命令按照一定顺序排列而形成的集合,恩恩,就是我想要的~批处理的每一行都可以作为一条命令,而每条命令包含很多子命令,运行在dos平台下
1. dos不支持长文件名
2. ::为注释
3. >表示写入,>>表示添加
@
让执行窗口不显示该行命令(只显示执行结果)
echo
1. echo包含2种状态,打开和关闭,直接执行echo将会显示当前的echo状态(on或者off),处于off状态的echo将不会显示命令,只显示执行结果。(默认为echo on的状态)
2. echo命令可以用于显示信息:”echo xxxxx“命令将会在窗口中显示xxxxxx
3. echo命令可以直接编辑文本文件:“echo xxxx>mmm.txt”命令将会将xxxx写入mmmm.txt文件
::
注释
pause
暂停,让当前进程停止一下,并且显示一行信息:”按任意键继续。。。。“
goto
1. 跳转,当程序运行到goto时就自动跳转到由”:“标签定义的部分执行
2. 提前结束程序,直接跳转到脚本最后一行
%
参数,%1表示脚本执行时的第一个参数,%2表示第二个参数,以此类推(这个参数指的是执行这个bat时后面所跟的参数变量,如a.bat xxxx,那么xxx就是第一个参数)
if
判断,根据得出的每一个结果,对应一个相应的操作
1. 输入判断,if [not] string1 = string2 do command
2. 存在判断,if [not] exist filename do command
3. 结果判断,if [not] errorlevel number do command
call
从一个批处理脚本中调用另一个批处理脚本(可带参数,可调用自身bat程序,但是执行若干次之后会中止调用)
find
搜索命令,用于在文件中搜索特定字符串(使用较少)
for
对一组文件中的每一个文件执行某个特定命令
for [/D] %variable in (set) Do Command [command-parameters]
%variable 指定一个单一字母可替换的参数
(set) 指定一个或一组文件,可以使用通配符
注:批处理文件中使用FOR命令,指定变量使用%%variable而不是%variable,变量名称区分大小写
/D:如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配
for /R [[drive:]path] %variable in (set) Do Command [command-parameters]
检查[drive:]path为根的目录树,指向每个目录中的FOR语句,如果在/R后没有指定目录,则使用当前目录
。。。。(没耐性了,用到了再细细研究)
for /f ["options"] %variable IN (file-set|"string"|'command') DO command [command-parameters]
filenameset为一个或多个文件名,继续到filenameset中的下一个文件之前,每份文件都已被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用For循环。以默认方式,/F通过每个文件的每一行中分开的第一个空白符号。跳过空白行,您可通过指定可选“options”参数代替默认解析操作,这个带引号的字符串包括一个活多个指定不同解析选项的关键字:
eol=c 一个行注释字符的结尾
skip=n 在文件开始时忽略的行数
delims = xxx 分隔符集,用于替换空格和tab键的默认分割集
tokens = x,y,m-n 每行的哪一个符号被传递到每个迭代的for本身
usebackq
SET
显示、设置、删除cmd.exe环境变量
SET [variable=[string]]
variable:指定环境变量名
string:指定要指派给变量的一系列字符串
要显示当前环境变量,直接输入SET
。。。。(用到再细细研究)
shift
更改批处理文件中可替换参数的位置
SHIFT [/n]
如果命令扩展名被启用,shift命令支持/n命令行开关,该命令行开关告诉命令从第n个参数开始移位;n介于0和8之间
|
把前一命令的输出当做后一命令的输入来使用
help
显示帮助信息
more
逐屏或逐行显示输出
>,>>
输出重定向,把前面命令的输出写入到一个文件中,>会清除掉原有文件中的内容后把新的内容写入原文件,而>>会另起一行追加新的内容到原文件,不会改动其中原有的内容
<、>&、<&
<:输入重定向命令,从文件中读入命令输入
>&:将一个句柄的输出写入到另一个句柄的输入中
<&:从一个句柄读取输入并将其写入到另一个句柄输出中
&
连接n个DOS命令,把这些命令按照顺序执行而不管是否有命令执行失败(批处理认行不认命令数,一行就是一个命令)
&&
把前后两个命令组合起来当一个命令使用,从前往后一次执行被它连接的几个命令时会判断是否有命令执行出错,一旦发现出错就不继续执行后面的命令
||
当遇到一个执行正确的命令就退出此命令组合,不再继续执行下面的命令
ver
查看windows版本
cmd
启动Windows XP命令解释程序的一个新的实例
%cd%
可以用在命令行提示符中,也可以用在批处理文件中,用于表示当前的路径