DOS编程高级技巧

发布 2021-05-11 23:58:28 阅读 6051

dos编程高级技巧--结束篇。

一、交互界面设计。

没啥说的,看看高手设计的菜单界面吧:

echo off

clstitle 终极多功能修复。

menucls

color 0a

echo.echo

echo 请选择要进行的操作,然后按回车。

echoecho.

echo 1.网络修复及上网相关设置,修复ie,自定义屏蔽**。

echo.echo 2.病毒专杀工具,端口关闭工具,关闭自动**。

echo.echo 3.清除所有多余的自启动项目,修复系统错误。

echo.echo 4.清理系统垃圾,提高启动速度。

echo.echo q.退出。

echo.echo.

choset choice=

set /p choice= 请选择:

if not "%choice%"=set choice=%choice:~0,1%

if /i "%choice%"=1" goto ip

if /i "%choice%"=2" goto sets**e

if /i "%choice%"=3" goto kaiji

if /i "%choice%"=4" goto clean

if /i "%choice%"=q" goto endd

echo 选择无效,请重新输入。

echo.goto cho

只要学完本教程前面的章节,上面的程序应该能看懂了。

二、if…else…条件语句。

前面已经谈到,dos条件语句主要有以下形式。

if [not] errorlevel number command

if [not] string1==string2 command

if [not] exist filename command

增强用法:if [/i] string1 compare-op string2 command

增强用法中加上/i就不区分大小写了!

增强用法中还有一些用来判断数字的符号:

equ - 等于。

neq - 不等于。

lss - 小于。

leq - 小于或等于。

gtr - 大于。

geq - 大于或等于。

上面的command命令都可以用小括号来使用多条命令的组合,包括else子句,组合命令中可以嵌套使用条件或循环命令。

例如:if exist filename (

del filename

else (

echo filename missing

也可写成:if exist filename (del filename) else (echo filename missing)

但这种写法不适合命令太多或嵌套命令的使用。

三、循环语句。

1、指定次数循环。

for /l %variable in (start,step,end) do command [command-parameters]

组合命令:for /l %variable in (start,step,end) do (

command1

command2

2、对某集合执行循环语句。

for %%variable in (set) do command [command-parameters]

%%variable 指定一个单一字母可替换的参数。

(set) 指定一个或一组文件。可以使用通配符。

command 对每个文件执行的命令,可用小括号使用多条命令组合。

for /r [[drive:]path] %variable in (set) do command [command-parameters]

检查以 [drive:]path 为根的目录树,指向每个目录中的。

for 语句。如果在 /r 后没有指定目录,则使用当前。

目录。如果集仅为一个单点(.)字符,则枚举该目录树。

同前面一样,command可以用括号来组合:

for /r [[drive:]path] %variable in (set) do (

command1

command2

commandn

3、条件循环。

利用goto语句和条件判断,dos可以实现条件循环,很简单啦,看例子:

echo off

set var=0

rem循环开始了。

continue

set /a var+=1

echo 第%var%此循环。

if %var% lss 100 goto continue

rem循环结束了。

echo 循环执行完毕。

pause四、子程序。

在批处理程序中可以调用外部可运行程序,比如exe程序,也可调用其他批处理程序,这些也可以看作子程序,但是不够方便,如果被调用的程序很多,就显得不够简明了,很繁琐。

在windowsxp中,批处理可以调用本程序中的一个程序段,相当于子程序,这些子程序一般放在主程序后面。

子程序调用格式:

call :label arguments

子程序语法:

labelcommand1

command2

commandn

goto :eof

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

子程序例1:

echo off

call :sub return 你好。

echo 子程序返回值:%return%

pausesub

set %1=%2

goto :eof

运行结果:你好。

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

echo off

set sum=0

call :sub sum 10 20 35

echo 数据求和结果:%sum%

pausesub

rem 参数1为返回变量名称。

set /a %1=%1+%2

shift /2

if not "%2"==goto sub

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目录。

pwdlcd d:\download #本地目录。

mget * **tmp1目录下的所有文件。

bye #退出ftp

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

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

7z [.的每个命令都有不同的参数,请看帮助文件。

为压缩包名称。

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

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

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 脚本名称 [脚本选项。脚本参数。

选项:/b 批模式:不显示脚本错误及提示信息。

/d 启用 active debugging

/e:engine 使用执行脚本的引擎。

/h:cscript 将默认的脚本宿主改为

/h:wscript 将默认的脚本宿主改为 (默认)

/i 交互模式(默认,与 //b 相对)

/job:xxxx 执行一个 wsf 工作。

/logo 显示徽标(默认)

/nologo 不显示徽标:执行时不显示标志。

/s 为该用户保存当前命令行选项。

/t:nn 超时设定秒:允许脚本运行的最长时间。

/x 在调试器中执行脚本。

/u 用 unicode 表示来自控制台的重定向 i/o

脚本名称”是带有扩展名和必需的路径信息的脚本文件名称,如d:\admin\vbscripts\

脚本选项和参数”将传递给脚本。脚本参数前面有一个斜杠 (/每个参数都是可选的;但不能在未指定脚本名称的情况下指定脚本选项。如果未指定参数,则 cscript 将显示 cscript 语法和有效的宿主参数。

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

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

小知识:在dos环境下,可执行文件的优先级由高到低依次为。com>.

exe>.bat>.cmd,即如果在同一目录下存在文件名相同的这四类文件,当只键入文件名时,dos执行的是如果需要执行其他三个文件,则必须指定文件的全名,如。

这是一个只有5.43k大小的免费绿色工具,可以运行在纯dos或dos窗口的命令行中,用法:bat2com

filename,这样就会在同一目录下生成一个名为的可执行文件,执行的效果和原来的。bat文件一样。

九、时间延迟。

本条引用[英雄]教程。

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

1、利用ping命令延时。

例:@echo off

echo 延时前!

ping /n 3 127.0.0.1 >nul

echo 延时后!

pause解说:用到了ping命令的“/n”参数,表示要发送多少次请求到指定的ip。本例中要发送3次请求到本机的ip

127.0.0.1)。127.0.0.1可简写为127.1。“>nul”就是屏蔽掉ping命令所显示的内容。

2、利用for命令延时。

例:@echo off

echo 延时前!

for /l %%i in (1,1,5000) do echo %%i>nul

echo 延时后!

pause解说:原理很简单,就是利用一个计次循环并屏蔽它所显示的内容来达到延时的目的。

十、模拟进度条。

下面给出一个模拟进度条的程序。如果将它运用在你自己的程序中,可以使你的程序更漂亮。

echo off

mode con cols=113 lines=15 &color 9f

clsecho.

echo 程序正在初始化。 .

echo.echo

set/p= ■nul

echo 100%%

echopause

解说:“set /p a=■nul”是输出每个“■”的时间间隔,即每隔多少时间输出一个“■”

DOS批处理高级应用

时间 2009 10 16 21 05 58 点击 9 核心提示 精典的dos批处理高级应用分类 windows编程扩展名是bat 在nt 2000 xp 2003下也可以是cmd 的文件就是批处理文件。首先批处理文件是一个文本文件,这个文件的每一行都是一条dos命令 大部分时候就好象我们在dos提...

DOS批处理高级教程

第一章批处理基础 1 第一节常用批处理内部命令简介 1 1 rem和 1 2 echo和 1 3 pause 2 4 errorlevel 2 5 title 2 6 color 2 7 mode 2 8 goto和 3 9 find 3 10 start 命令 4 11 assoc和ftype 4...

DOS批处理高级教程

dos批处理高级教程精选合编20080331 windows xp cmd命令行高级教程精选合编 上 见9,10,11楼未完,续继整理 目录。第一章批处理基础。第一节常用批处理内部命令简介。1 rem 和 2 echo 和 3 pause 4 errorlevel 5 title 6 color 7...