嘉定都市网

查看:481 回复:4 发表于 2004-8-13 09:24
  • TA的每日心情
    开心
    2017-7-28 22:00
  • 签到天数: 52 天

    [LV.5]常住居民I

    qrcode
    跳转到指定楼层
    楼主
    发表于 2004-8-12 10:33:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    [求助]批处理问题批处理问题 [复制链接]

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    编写批处理文件

    1.编写批处理文件BP.BAT,存在考盘根目录下,在Win98的命令行界面使用此文件,能实现以下功能。(假定所有未指明路径的文件都在C:\US中)
      用COPY命令显示当前目录下文本文件ABC.TXT的内容。
      如果子目录D:\DATA中存在文件HELP.TXT,则先在该文件的尾部添加一行文字:7/14/02 ,再用一条命令将文本文件D:\CJ.TXT的内容添加到后面。
      如果批命令后跟有参数,则先在屏幕上显示该参数,再将该参数添加在已有环境变量KB原有值的后面。(提示:以上两个“如果”之间不是简单的互相排斥关系)。
      无论何种情况,显示C盘根目录中(不包括下级子目录)主名以A开头、扩展名为DAT的全部文件的目录信息,并按文件长度升序排列,长度相同时按主名字符降序排列,每项占一行。

    copy .\abc.txt con
    if exist d:\data\help.txt goto aa
    goto bb
    :aa
    echo "7/14/02">>help.txt
    type D:\CJ.TXT>>d:\data\help.txt    这里为什么要用TYPE命令?
    :bb
    if not exist '%1'=='' goto cc
    ecoh %1
    set kb=%kb%%1
    :cc

    dir c:\a*.dat         /s-n /w



    2.编写批处理文件BP.BAT,存在考盘根目录下,在Win98的命令行界面使用此文件,能实现以下功能。(假定所有未指明路径的文件都在C:\US中)
       已有子目录D:\DATA1和D:\DATA2,都没有下级子目录,其中一个子目录下存有扩展名为TXT的文件,另一子目录下没有扩展名为TXT的文件。用一行命令将存有TXT文件的那个子目录下的全部文件复制到子目录D:\DATA3中,但不复制另一子目录下的文件。(提示:IF EXIST 后面的文件名可以使用通配符)
      如果批处理命令后无参数,则先在D盘当前目录的下级子目录FD下建立新子目录FF,然后用虚拟的驱动器名F:代表这个新子目录;否则,屏幕显示批处理命令的第1个参数,然后用虚拟的驱动器名F:代表C盘的当前目录。
    无论何种情况,将E盘根目录下(不包括下级子目录)的全部扩展名为DAT的文件(包括隐含和系统属性的文件)复制到虚拟驱动器F:的根目录下。
    if exist d:\data1\*.txt  goto aa
    if exist d:\data2\*.txt copy *.txt d:\data3
    goto bb
    :aa
    copy d:\data1\*.txt d:\data3
    :bb
    if exist '%1'==''  goto cc
    md d:\.\fd\ff
    c:\us\subst f: d:\.\fd\.fd
    goto dd
    :cc
    ecoh '%1'
    c:\us\subst f: c:\.
    :dd
    c:\us\xcopy e:\*.dat f:\ /h





    3.编写批处理文件BP.BAT,存在考盘根目录下,在Win98的命令行界面使用此文件,能实现以下功能。(假定所有未指明路径的文件都在C:\\US中)
       用一行命令,为当前目录中的两种文件改名,一种是文件名以A开头,扩展名是DAT,另一种是文件名以B开头,扩展名是BIN,新的文件名是在旧的文件名前加上字母X。
      如果批处理命令后的第一参数为$,则设置环境变量KB的值为DOC;如果批处理命令后的第一参数为&或#,则设置环境变量KB的值为XLS,其它情况设置环境变量KB的值为RTF。
    无论何种情况,先显示Win98的版本信息,然后用内部命令删除子目录D:\\XYZ(XYZ下没有子目录,仅有一些文件)。

    for %%a in (.\a*.dat .\b*.bin) do ren *.* x*.*
    if exist '%1'=='$' goto aa
    if exist '%1'=='&' goto bb
    if exist '%1'=='#' goto cc
    set kb=rtf
    goto dd
    :aa
    set kb=doc
    goto dd
    :bb
    set kb=xls
    goto dd
    :cc
    set kb=doc
    :dd
    ver
    c:\us\attrib -h -s d:\xyz\*.*
    del d:\xyz\*.*
    rd d:\xyz




    4.编写批处理文件BP.BAT,存在考盘根目录下,在Win98的命令行界面使用此文件,能实现以下功能。(假定所有未指明路径的文件都在C:\\US中)
       用格式化命令尽快地清除B盘已有的全部内容并使其能够启动命令行界面。
    如果D:\\BATCH中有文件SCP.BAT,则执行该批文件,并且在执行完毕后,不再回到BP.BAT继续执行;否则先进入允许输入汉字的状态(注意:这一命令如果使用不当,会影响其他命令的执行),再以非窗口方式启动16位文本编辑器EDIT.COM,编辑修改文本文件D:\\HELP.TXT,编辑完后撤销允许输入汉字的状态,然后显示这个文件的内容,满屏时暂停,等看完后按任意键才继续显示后续内容。
      把子目录D:\\OLD(不包括下级子目录)中的全部文件复制到子目录D:\\NEW中,但D:\\NEW中已有同名文件,且修改日期和时间不早于源文件者不复制。

    c:\us\format b:/q
    if exist d:\batch\scp.bat goto aa
    c:\us\pdo95
    c:\us\start /max c:\us\edit.com d:\help.txt
    quit
    dir d:\help.txt /p
    goto bb
    :aa
    scp.bat
    exit
    :bb
    c:\us\xcopy d:\old\*.* d:\new /h /d:


    此贴由 puppy525 在 2004-08-12 17:25:55 最后编辑
           

    此贴由 puppy525 在 2004-08-12 17:27:00 最后编辑
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享淘帖 支持支持 反对反对
    回复

    使用道具 打印 举报

    该用户从未签到

    沙发
    发表于 2004-8-12 15:16:12 | 只看该作者
    第一题,分数:2
    正确答案

    copy abc.txt con

    if exist d:\\data\\help.txt GOTO L1
    GOTO L2
    1
    ECHO \"7/14/02\">>help.txt
    TYPE D:\\CJ.TXT>>d:\\data\\help.txt
    2


    if NOT "%1"=="" GOTO L3
    ECHO %1
    SET KB=%KB%%1

    3

    dir c:\\a*.dat   /s-n /w
           

    其余的题目,得分也不会高,因为结构全错了

    错误的很大一个原因是IF语句

    iF 条件 COMMAND
    注意COMMAND只能是一条命令,不能是两条命令

    比如
    DIR C: GOTO AA
    其中DIR C:是一条命令
    GOTO AA也是一条命令,那么这两条命令不能写在一行,请仔细修改自己的答案,我再看,好吗?



    此贴由 flytosea 在 2004-08-12 15:21:16 最后编辑
    回复 支持 反对

    使用道具 打印 举报

    该用户从未签到

    板凳
    发表于 2004-8-12 15:52:38 | 只看该作者
    老师你说的

    iF 条件 COMMAND
    如果后面跟1条命令不也是可以的啊?无论是goto还是内部、外部命令。因为第2条命令通过回车换行后,不会和第一条command相互排斥了。(Too many parameters - goto)

    SET KB=%KB%%1
    %kb%;%1 需要;么?
           

    此贴由 YIYO│ζθζι 在 2004-08-12 15:54:40 最后编辑
    回复 支持 反对

    使用道具 打印 举报

  • TA的每日心情
    开心
    2017-7-28 22:00
  • 签到天数: 52 天

    [LV.5]常住居民I

    地板
     楼主| 发表于 2004-8-12 17:37:07 | 只看该作者
    受老师一指点
    茅塞顿开
    回复 支持 反对

    使用道具 打印 举报

    该用户从未签到

    5
    发表于 2004-8-13 09:24:43 | 只看该作者
    老师你说的

    iF 条件 COMMAND
    如果后面跟1条命令不也是可以的啊?无论是goto还是内部、外部命令。因为第2条命令通过回车换行后,不会和第一条command相互排斥了。(Too many parameters - goto)

    听不懂什么意思~~~

    SET KB=%KB%%1
    %kb%;%1 需要;么?----不需要
    回复 支持 反对

    使用道具 打印 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    发表新贴 返回顶部