zoukankan      html  css  js  c++  java
  • bat脚本参数 if goto choice for使用的学习笔记。

        写过几次bat脚本,但一直没有总结,最近找到一个网页介绍bat,总结得很好,转自 http://www.jb51.net/article/49627.htm:

        本文只总结我不会的,全面的看原网页就可以了。

       1 参数

       '%':参数符,%[1-9]表示参数,多个参数要用空格或tab隔开。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示

    1. 例3:C:根目录下一批处理文件名为t.bat,内容为: @echo off type %1 type %2
    2. 那么运行C:>t a.txt b.txt %1 : 表示a.txt %2 : 表示b.txt 于是上面的命令将顺序地显示a.txt和b.txt文件的内容。

       2 if

    1. if [not] "参数" == "字符串" 待执行的命令

    例:if "%1"=="a" format a:

    2. if [not] exist [路径]文件名 待执行的命令

    例: if exist c:config.sys type c:config.sys
    表示如果存在c:config.sys文件,则显示它的内容。

    3. if errorlevel <数字> 待执行的命令 (这个命令挺有意思的,所以多写点。)

    很DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果,通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。 

    例:if errorlevel 2 goto x2。

    以下就是几个常用命令的返回值及其代表的意义:

    backup    0 备份成功 1 未找到备份文件 2 文件共享冲突阻止备份完成 3 用户用ctrl-c中止备份 4 由于致命的错误使备份操作中止

    diskcomp 0 盘比较相同 1 盘比较不同 2 用户通过ctrl-c中止比较操作 3 由于致命的错误使比较操作中止 4 预置错误中止比较

    diskcopy  0 盘拷贝操作成功 1 非致命盘读/写错 2 用户通过ctrl-c结束拷贝操作 3 因致命的处理错误使盘拷贝中止 4 预置错误阻止拷贝操作

    format     0 格式化成功 3 用户通过ctrl-c中止格式化处理 4 因致命的处理错误使格式化中止 5 在提示“proceed with format(y/n)?”下用户键入n结束

    xcopy      0 成功拷贝文件 1 未找到拷贝文件 2 用户通过ctrl-c中止拷贝操作 4 预置错误阻止文件拷贝操作 5 拷贝过程中写盘错误

        3 goto 这个经常看到,不需要多解释:

    例:goto end

    :end echo this is the end

    标号用“:字符串”来定义,标号所在行不被执行。

        4 choice 使用此命令可以让用户输入一个字符(用于选择),与if errorlevel配合使用。

    注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

    示例:
       CHOICE /?
       CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
       CHOICE /T 10 /C ync /CS /D y :10秒超时,有y n c三个选项,默认选y。
       CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。" : 提供a b两个选项,带上一条文本。 
       CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。":功能同上,但在提示符中隐藏选项列表。

    例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列): @echo off choice /C dme /M "defrag,mem,end" if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag

    :defrag c:dosdefrag goto end

    :mem mem goto end

    :end echo good bye

        5 for 这个用法有点特别,还有不明白的地方,还需要理解:

    语法: 对一组文件中的每一个文件执行某个特定命令。

    FOR %%variable IN (set) DO command [command-parameters]

    %%variable   指定一个单一字母可替换的参数。 (set)       指定一个或一组文件。可以使用通配符。 command     指定对每个文件执行的命令。 command-parameters              为特定命令指定参数或命令行开关。

    例如一个批处理文件中有一行: for %%c in (*.bat *.txt) do type %%c

    则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

     

    转载于:https://www.cnblogs.com/FreshIsBest/p/6208689.html

  • 相关阅读:
    高通平台Bootloader启动流程【转】
    tree 命令【转】
    Linux设备树语法详解【转】
    Linux内核 设备树操作常用API【转】
    【转】android JNI
    【转】Android JNI编程—JNI基础
    【转】深入了解android平台的jni---注册native函数
    【转】Android与JNI(二) -- 不错
    【转】 Android的NDK开发(1)————Android JNI简介与调用流程
    【转】Java运算符优先级
  • 原文地址:https://www.cnblogs.com/twodog/p/12141495.html
Copyright © 2011-2022 走看看