DOS批处理高级教程:第七章 DOS批处理编程高级技巧(2)

2019-03-11 08:43

程。

子程序和主程序中的变量都是全局变量,其作用范围都是整个批处理程序。

传至子程序的参数在call语句中指定,在子程序中用%1、%2至%9的形式调用,而子程序返回主程序的数据只需在调用结束后直接引用就可以了,当然也可以指定返回变量,请看下面的例子。

子程序例1:

?? @echo off

?? call :sub return 你好

?? echo 子程序返回值:%return% ?? pause ?? ?? :sub ?? set %1=%2 ?? goto :eof

复制代码 运行结果:你好

子程序例2:设计一个求多个整数相加的子程序

?? @echo off ?? set sum=0

?? call :sub sum 10 20 35 ?? echo 数据求和结果:%sum% ?? pause ?? ?? :sub

?? rem 参数1为返回变量名称 ?? set /a %1=%1+%2 ?? shift /2

?? if not \?? goto :eof

复制代码 运行结果:65

在win98系统中,不支持上面这种标号调用,须将子程序单独保存为一个批处理程序,然后调用。

五、用ftp命令实现自动下载

ftp是常用的下载工具,ftp界面中有40多个常用命令,自己学习了,不介绍了。这里介绍如何用dos命令行调用ftp命令,实现ftp自动登录,并上传下载,并自动退出ftp程序。

其实可以将ftp命令组合保存为一个文本文件,然后用以下命令调用即可。

ftp -n -s:[[drive:]path]filename

上面的filename为ftp命令文件,包括登录IP地址,用户名、密码、操作命令等 例:

open 90.52.8.3 #打开ip

user iware #用户为iware password8848 #密码

bin #二进制传输模式 prompt

cd tmp1 #切换至iware用户下的tmp1目录 pwd

lcd d:\\download #本地目录

mget * #下载tmp1目录下的所有文件 bye #退出ftp

六、用7-ZIP实现命令行压缩和解压功能

语法格式:(详细情况见7-zip帮助文件,看得头晕可以跳过,用到再学)

7z [...] [...]

7z.exe的每个命令都有不同的参数,请看帮助文件 为压缩包名称

为文件名称,支持通配符或文件列表

其中,7z是至命令行压缩解压程序7z.exe,是7z.exe包含的命令,列举如下:

a: Adds files to archive. 添加至压缩包 a命令可用参数: -i (Include) -m (Method) -p (Set Password) -r (Recurse)

-sfx (create SFX) -si (use StdIn) -so (use StdOut)

-ssw (Compress shared files) -t (Type of archive) -u (Update) -v (Volumes) -w (Working Dir) -x (Exclude)

b: Benchmark

d: Deletes files from archive. 从压缩包中删除文件 d命令可用参数: -i (Include) -m (Method) -p (Set Password) -r (Recurse) -u (Update)

-w (Working Dir) -x (Exclude)

e: Extract解压文件至当前目录或指定目录 e命令可用参数: -ai (Include archives)

-an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives)

-i (Include)

-o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude)

-y (Assume Yes on all queries)

l: Lists contents of archive. t: Test u: Update

x: eXtract with full paths用文件的完整路径解压至当前目录或指定目录 x命令可用参数: -ai (Include archives)

-an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives) -i (Include)

-o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude)

-y (Assume Yes on all queries)

七、调用VBScript程序

使用 Windows 脚本宿主,可以在命令提示符下运行脚本。CScript.exe 提供了用于设置脚本属性的命令行开关。

用法:CScript 脚本名称 [脚本选项...] [脚本参数...]

选项:

//B 批模式:不显示脚本错误及提示信息 //D 启用 Active Debugging //E:engine 使用执行脚本的引擎

//H:CScript 将默认的脚本宿主改为 CScript.exe

//H:WScript 将默认的脚本宿主改为 WScript.exe (默认) //I 交互模式(默认,与 //B 相对) //Job:xxxx 执行一个 WSF 工作 //Logo 显示徽标(默认)

//Nologo 不显示徽标:执行时不显示标志 //S 为该用户保存当前命令行选项

//T:nn 超时设定秒:允许脚本运行的最长时间 //X 在调试器中执行脚本

//U 用 Unicode 表示来自控制台的重定向 I/O

“脚本名称”是带有扩展名和必需的路径信息的脚本文件名称,如d:\\admin\\vbscripts\\chart.vbs。 “脚本选项和参数”将传递给脚本。脚本参数前面有一个斜杠 (/)。每个参数都是可选的;但不能在未指定脚本名称的情况下指定脚本选项。如果未指定参数,则 CScript 将显示 CScript 语法和有效的宿主参数。

八、将批处理转化为可执行文件:

由于批处理文件是一种文本文件,任何人都可以对其进行随便编辑,不小心就会把里面的命令破坏掉,所以如果将其转换成.com格式的可执行文件,不仅执行效率会大大提高,而且不会破坏原来的功能,更能将优先级提到最高。Bat2Com就可以完成这个转换工作。

小知识:在DOS环境下,可执行文件的优先级由高到低依次为.com>.exe>.bat>.cmd,即如果在同一目录下存在文件名相同的这四类文件,当只键入文件名时,DOS执行的是name.com,如果需要执行其他三个文件,则必须指定文件的全名,如name.bat。

这是一个只有5.43K大小的免费绿色工具,可以运行在纯DOS或DOS窗口的命令行中,用法:Bat2Com FileName,这样就会在同一目录下生成一个名为FileNme.com的可执行文件,执行的效果和原来的.bat文件一样。

九、时间延迟

什么是时间延迟?顾名思义,就是执行一条命令后延迟一段时间再进行下一条命令。

延迟的应用见下节:“模拟进度条”。

1、利用ping命令延时 例:

?? @echo off

?? echo 延时前:%time% ?? ping /n 3 127.0.0.1 >nul ?? echo 延时后:%time% ?? pause

复制代码


DOS批处理高级教程:第七章 DOS批处理编程高级技巧(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年基础班中医基础理论讲义(7)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: