介绍批处理命令也有原因的,是由于在使用jenkins处理集成的时候,有些dll需要编译后拷贝到Web层的,否则反射是无法执行的。好了,切入正题
批处理文件是无格式的文本文件。包括一条或多条。扩展名为.bat或cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
下面简单介绍基本的语法使用
打开或关闭请求回显功能,显示当前设置
echo [{on|off}][message] Sample:@echo off / echo hello world
表示不显示@后面的命令
不能让对方看到你使用的命令啦。
Sample:@echo off @echo Nowinitializing the program,please wait a minite...
指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
Sample: if {%1}=={} gotonoparms if{%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) @Rem check parametersif null show usage :noparms echo Usage:monitor.bat ServerIP PortNumber goto end
注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
Rem Message
Sample:@Rem Here is the descr1ption.
运行 Pause 命令时,将显示下面的消息:
Press any key tocontinue . . .
该命令有助于显示想要的结果
Sample: @echo off :begin copya:*.* d:back echo Please put a newdisk into driver A pause goto begin
在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:back中。
if表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if"%1"=="a" format a:
if {%1}=={} gotonoparms
if {%2}=={} gotonoparms
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if existconfig.sys edit config.sys
命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令
在批处理文件中使用 FOR 命令时,指定变量请使用%%variable
整体的语法是:
for{vaiable|%%variable}in (set) do command[CommandLineOptions]
对应的格式也可以是
for参数 %%变量名 in ("文件或通配符")do("操作")
以上是两种变形的写法,但表达的都是相同的意思
参数 for有4个参数分别是/d /r /l /f
我们来个递归的写法
在一个目录中搜索某个文件拷贝到另一个目录中
set jbosspath=E:\Jenkins_Publish\ExamSystem_NET\ExamSystem_Service\bin set projwhich=ExamSystem set objectbll=%Jenkins_Net%\%projwhich%\ITOO.Exam.BLL\obj\Release for /r"%objectbll%" %%i in (ITOO*.dll) do ( echo 正在复制%%i到%jbosspath%copy /y"%%i" %jbosspath%<p>)</p>
以上是对bat脚本的基本学习和认识,基本的语法结构和命令提示符,也是对现学习的最基本的记录,稍作整理吧。
原文地址:http://blog.csdn.net/han_yankun2009/article/details/42656665