DOS批处理高级教程 第七章 DOS批处理编程高级技巧

2019-09-19 06:39:27王冬梅

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

同前面一样,command可以用括号来组合:
FOR /R [[drive:]path] %variable IN (set) DO (
Command1
Command2
……
commandn
)

3、条件循环

    上面的循环结构是用for命令来实现的,for命令循环有一个缺点,就是整个循环被当作一条命令语句,涉及到变量延迟的问题。
    利用goto语句和条件判断,dos可以实现条件循环,很简单啦,看例子:

例:

@echo off
set var=0
rem ************循环开始了
:continue
set /a var+=1
echo 第%var%次循环
if %var% lss 100 goto continue
rem ************循环结束了
echo 循环执行完毕
pause

例:

@echo off
set var=100
rem ************循环开始了
:continue
echo 第%var%次循环
set /a var-=1
if %var% gtr 0 goto continue
rem ************循环结束了
echo 循环执行完毕
pause

四、子程序

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

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

子程序调用格式:

CALL :label arguments

子程序语法:
:label
command1
command2
......
commandn
goto :eof

在子程序段中,参数%0指标签:label

子过程一般放在最后,并且注意在主程序最后要加上exit或跳转语句,避免错误的进入子过程。

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

传至子程序的参数在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 "%2"=="" goto sub
goto :eof

运行结果:65

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


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

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

相关文章 大家在看