三cognos教程与函数调优url传参windows批处理文件_第1页
三cognos教程与函数调优url传参windows批处理文件_第2页
三cognos教程与函数调优url传参windows批处理文件_第3页
三cognos教程与函数调优url传参windows批处理文件_第4页
三cognos教程与函数调优url传参windows批处理文件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows 处理文件的扩展名为bat。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理的;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的。这里要讲的就是DOS批处理。批处是一种化的语言,应用于S和is统中,是由S或者is系统内嵌 令解释(通常是 或者MX)解释行。类似于x中的S 处理件具有t或者cd的扩展其简单的子逐行书写在命行中会到的各命令更复杂情需要使用o等命控制程序的运行过,如同,Bac等高级语一样。果需要实更复杂应用,用外部程序是必要,这包系统本提供的部命令第提供的具或者件。批理文件或称为批理程序是由一条的S令组成普通文本件,可用记事直接编辑或用S令创建也可用S的文本辑器te编辑在“命提示”键入批处理件的名,或者击该批理文件系就会调用e行该批理程。一般情况下,每条命令占一行;当然也可以多命令用特定符号(如:、、、等分隔写入同行中有的况就是像、r等较高级令则要据几行至几十几百行空间系统解释运批处理序时先扫描整批处理序然后从一行代码开始下逐句行所有令,至程序尾遇见t命或出错外退出。echo打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo命令将显示当echo[{on|off}]/echoo在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用^)结合rem RemSample:@RemHereisthepause暂停命令。PausePressanykeyto copyG:*.*echo请插入另一张光盘...goto在这个例子中,驱动器G中磁盘上的所有文件均到d:\back中。显示的注释提示G时,pause命令会使程序挂起,以便您更换光盘,然后按任call从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用。如果在或批处理文件外使用Call,它将不会在命令行起作用。call[[Drive:][Path]FileName][:labelstartstart如:startcalc.exe即可打开Windows的计算器。“title”MINSEPARATE16WindowsHIGHHIGHREALTIMEREALTIMEWAITparameters这些为传送到命令/32-GUI应用程序时,CMD.EXE不等应用程序终止就返回命令提Startgoto 语法:gotolabel(label是参数,指定所要转向的批处理程序中的行if{%1}=={}goto@RemcheckparametersifnullshowechoUsage:monitor.batServerIPPortNumbergotoend是,gotoset 显示变量:setsets前者显示批处理当前已定义的所有变量及其值,后者显示所有s开头的变量及值。设置变量:setaa=abcdaaabcdaa已被定义,则abcd。删除变量:setaa=aaaaaa;aa尚未定义,则此句命令为实质意义。C语言中的变量那样还要区int、float、charsetaa=345aa345,也可345。 【回 @】不能让对方看到你使用令啦。1与>>如:echoaaaaa>a.txtaaaaaa.txt中,屏幕a.txta.txt中的所有信息,然aaaaaechoaaaaa>>a.txtechoaaaaa>a.txta.txt本已存在,>a.txt会擦a.txt不存在时,二者没有差别。2<echoabcdefga.txt中的信息>a.txtecho请任意输入字符,以回车结束:set/pifo=echoechoset/pechoa.txtecho%ifo%|echoaaaa>a.txtdel/pa.txtechoechoy|del/pa.txt际删除文件时不加/p开关即可实现无提示直接删除。^><>>echoechoechoechoechoecho比较上面的两句echoechoaaaaa.txtecho则aaaa>a.txt echoregaddHKCU/vtry/f||echo**成功**regaddHKCU1vtryf||echo**失败**echo^&^®deleteHKCUvtryf&&echo**成功**regdeleteHKCUvtryf&&echo**失败**echo^®deleteHKCUvtryf&echo**成功**regdeleteHKCUvtryf&echo**失败**regaddregdeleteecho命令也给出了“执DOS cd显示当 md创 rd删除一 tree dir显 列表treepathpath xcopy 文件 树type copy将一份或多份文 del move移动文件并重命名文件 。(WindowsXPHomeEdition中没有 ren ce attrib find fc ftp netnet ipconfig显示、修改TCP/IP msg arpIP地址-at tskill taskkill结束进程(tskillWinXPHome版中无该命令 tasklist显示进程列表(WindowsXPHomeEdition中没有 powercfg控制系统上的电源设置cls清屏/?循环结构(for语句)等。if语句(选择结构)if语句实现条件判断,包括字符串比较、存在判断、定义判断等。通过条件判断,if语IF[not]string1compare-opstring2command1[else==-等于EQU-等于NEQ-不等于LSS-小于LEQ-GTR-GEQ-选择开关/inot项,则对判断结果进行逻辑非。setstr1=abcd1233setstr2=ABCD1234if%str1%==%str2echo字符串相同!elseecho字符串不相同!)if/i%str1%LSS%str2%(echostr1^<str2)else(echostr1^>=str2)setpchoice=ifinotchoice%EQUnecho当前时间是:%datetime%ifnN时的效果是一样的,都不会显示时间。如果我们取消开关/iN时,依旧会显示时间。另外请注意一下几个细节:1-echostr1^<str2echostr1^>=str2;2-echo.。IF[NOT]EXISTfilenamecommand1[elseifexist0echo文件%0ifnotexist%~df0echo文件夹%~df0elseecho文件夹%~df0%~df0是对%0的修正,只保留了其驱动器盘符和路径,参考for/?,属高级批必须和command1的右括号、command2的左括号必须与else、command1和command2都可以有任意多行,即command可以是命令集。IF[not]DEFINEDvariablecommand1[elsesetifdefinedvarechovar=%var%elseechovarsetifdefinedvarechovar=%var%elseechovarfor语句(循环结构)forCfor语句的功能要更强大一点,forfor循环语句。其命令格FOR%%variableIN(set)DO其中,%%variableDOS中书写为%variable,即只有一个百分号(%);setC语言里面的循环变量;do后面的command就是循环所执行令,即循环体。无开关forfor%%iin(a,"bc",d)doecho%%i含开关/Lforset里面的设置进行循环,从而实现对循环次数的直接FOR/L%%variableIN(start,step,end)DO其中,start为开始计数的初始值,step为每次递增的值,endendstart时,step含开关/L的for语句举例(5个文件夹for/l%%iin(1,2,10)domd%%i51、3、5、7、9。可以发现,%%i的结束值end10end的一个数。回值进行操作,还可以硬盘上的ASCII码文件,比如txt文档等。其命令格式为:FOR/F["options"]%%variableIN(set)DOtokens=x,y,m-n、usebackq)for/f。一般情况下,skip、tokens、delims三个选项。含开关/Fforecho**Nofor/f%%ain("1,2,10")doechoa=%%aecho**Optionstokens^&delims:for/f"tokens=1-3delims=,"%%ain("1,2,10")doechoa=%%ab=%%bc=%%cechofor/f"skip=5tokens=3*delims="%%ain('dir')doifnota"=="<DIR>"ifnotb"=="字节ifnotb"=="可用字节echo)echofor/f"skip=5tokens=3*delims="%%ain(c:\file.txt)doifnota"=="<DIR>"ifnotb"=="字节ifnotb"=="可用字节echo)delc:\file.txtoptionsdelims=是可以删除的,因为只要添加了/Fdelims的值默认为空格。同时我们也看到了,fordocommandcommanddo4、开关/D或含开关/D或/R的for语句是与 含开关/R的for语句举例(文件夹遍历FOR/Rd:%%iIN(.)DO(setset"dd=!dd:~0,-1!"echo!dd!)tree命令。一般情况下我们不推荐通过遍历文件夹来查找文件,特别是在查找某些程序(比如QQ.exe)的位置时。推荐通过reg命令查找表来查找QQ的路径,以保证查找效率。setlocal、感叹号等。其中,感叹号其实就是变量百分号(%)的强化版。之所以要用!而不用%,是因为在for循环中,当一个变量被多次赋值"setlocalenabledelayedexpansion"来开启延迟变量开关,然后用!dd!dd的值。for语句是批处理里面功能最强大、使用最普遍却又最难掌握的一套命令,这也是批处1setecho原字符串(第二行为各字符的序号echo%ifo%echo5echoecho5echo6echo45echoecho145echo%ifo:~-14,5%%time%2setaa=伟大的中国!我为你自豪!echo替换前:%aa%echo替换后:%aa:中国=中民%echoaa=%aa%set"aa=%aa:中国=中民%"echoaa=%aa%echoaa=%aa%3

setaa=伟大的中国!setbb=我为你自豪!echo%aa%%bb%echoaa=%aa%echoset"aa=%aa%%bb%"echoaa=%aa%4~I-删除任何引号(")%~fI-%I%~dI-%I%~pI-%I%~nI-%I%~xI-%I%~sI-%~aI-%I%~tI-%I扩充到文件的日期/%~zI-%I%~$PATH:I-查找列在路径环境变量的 ,并将%I扩充%~dpI-%I%~nxI-%I%~fsI-%I%~dp$PATH:i-查找列在路径环境变量的 ,并将%I扩充%~ftzaI-%I以上内容于for/?帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的表示,x可取a-zA-Z0-962echoecho完全路径:%0echoecho所在分区:%~d0echo所处路径:%~p0echo文件名:%~n0echoecho文件属性:%~a0echo修改时间:%~t0echo文件大小:%~z0其中的%0是批处理里面的参数,代表当前运行的批处理的完全路径。类似的还有%1-%91-9个参数。例子如下:setaa=C:\Windows\PPP\a.btxcall:dealaaa%aa%"cc"dddeeeecho%%0=echo%%1=echo%%2=echo%%3=echo%%4=echo%%5=aacall命令并将aa作为参数传递给子函数:deal,aa变量转换成了变量%1,即符合%x格式,从而可以进行字符串扩充。至于%x中x取a-zA-Z的形式,可以复下for语句,for语句里面的变量就是用%x数值计算的范围也受限于系统位数,对于目前较为常见的32位机来说,数值计算能处理的数值范围为0x /expressionC语言里面的表达式基本上完全一致。setC语言里面的一样,只是没有了増一减一。set支持的运算符及优先级排序如下:()-~--一元运算符(逻辑非、按位非、取负*/%-算数运算符(乘、除得商、除得余数,即取余+--算数运算符(加、减<<>>-逻辑移位(左移一位、右移一位&-^-|-*=/=%=+=-=-&=^=|=<<=,-表达式分隔符(set可一次处理多个表达式我们知道,批处理中取变量的值是需要用%或者!的,而在set/a中,直接用变量名称制(数字前缀0x,且支持不同进制之间的计算,如set/aa=123 (一)1ComputerName计算机名,即右键我的电脑--属性--计算机名选项卡中的“完整的计ComSpeccmd.exeHomeDriveC盘,故而ProgramFilesProgramFilesC:\ProgramFiles,这就是安Prompt个性化设置cmd提示符的必备!不过,我没怎么用过~SystemDriveHomeDrive了SystemRoot系统 Temp、TmpC:\WINDOWS\TempTmp。几乎所有的程序在运行时都会在这个里面“临时”写入文件。一般情况下,程序写入的临UserNameUserProfile当前用户的配置,一般都是C:\sandSettings\%UserName%。默认情况下,我们的桌面就是这个下面的“桌面”文件夹;我的文档就是这个下面的“Mys”文件夹。所以啦,往桌面上或我的文档里面放东西就是放到这个文件CC盘内容的,所以桌面上或我的文档里面的东西当然就会GonewiththeWind了~解决方法有两个,一是保持良好的习惯,不把重WinDir操作系统路径,其实就是SystemRoot2setset命令成为批处理里面使用频率最高的几个命令之一。关于set命令的使用,参考set/?,本也【3、变量或"!"for语句里面重复对同一变量多次赋值时才需要使用SetLocalDisableDelayedExpansion(二)1setvar=aCdehiM,?mnrstWyecho%var%call:dealsetlocaldisabledelayedexpansionsetvar=%var:?=!%echo%var%settm=!var!setvar=set)gotovarvar被修改后的值了。该例子中,使用了本节课前面讲到的setlocalenabledelayedexpansion和setlocal者保证了能够正确输出符号"!"setset对字符串进行了处goto:eof删除是不会产生任何影响的。2callcall:label][ChildBatch]}Parameter1Parameter2ParameterNCC语言,或子批处理里面是以%1~%9的形式表示的,即%1~%91~9个参数。call:dealaaabbb"cc"dddeeeecho%%0=echo%%1=echo%%2=echo%%3=echo%%4=echo%%5=通过这个例子就可以清晰的看到%n参数表示法的用法。参数列表中包含空格的依旧要用双引号(")引起来;另外,也可以看到,%0已经变成了子函数的标号了,而不是父批处理3丢失了原变量的值;间接传递则通过%n对原变量进行了简单的备份,并且通用性更强,即不限定原变量的名称。另外,使用%n还有一个非常大的好处,就是可以通过%~*i来加强处理变量的能力。关于%~*ifor/?。(三)Cexit(num),num就是错误代码。获取返回值errorlevel的方法就是,在执行命令后,立马调用返回值errorlevel,如echo%errorlevel%if%errorlevel%==1等命令。regaddHKCU/vtry/f>nulregdeleteHKCU/vtry/fiferrorlevel0(echo 删除成功!elseecho删除失败!)regdeleteHKCU/vtry/fiferrorlevel%==0echo删除成功!elseecho删除失败!)errorleveliferrorlevel0if%errorlevel%==0是一样的。也许你注意到了,里面还有个笑脸呢~O(∩_∩)O哈哈~ASCII码啦,后面跟你讲啊…errorlevel01或更高的errorlevel的值来进行逻辑判断的~(四)批处理,黑框白字是它最著名的特征。虽然当初DOS为人们使用计算机做出了莫大的贡献,但在Windows盛行的今天,人们已经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论