• 批处理中的符号


    @

    隐藏执行的命令,只显示结果

    &

    命令连接符号,就是把两个命令连续执行,不用分行

    例:

    dir c:\ & dir d:\
    pause

    &&

    连接两个命令,当&&前的命令成功时,才会执行&&后的命令

    ::没有z盘
    dir z:\ && dir c:\ 
    pause

    结果:

    |

    管道符,就是将上一个命令的输出内容,作为下一个命令的输入内容

    @rem more只打印当前窗口铺满,然后按回车或者空格继续打印下一行
    type %windir%\*.log | more

    ||

    命令连接符号,表示上一条命令执行失败后,才执行||符号后的内容, 如果上一条命令执行成功,则不继续执行

    dir z:\ || dir c:\
    pause

    结果:

    >

    重定向符, 将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖, 设备可以是硬盘、U盘之类的

    dir c:\ >e:\work\Bat\text.txt
    pause

    结果:

    >>

    重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被追加到原有内容的后面

    dir d:\ >>e:\work\Bat\text.txt
    pause

    结果:

    重定向符,将后面指定设备的内容,作为前面命令的输入内容,从文件中读入命令输入,而不是从键盘中读入 

    echo 2022-06-08 >e:\work\Bat\text.txt
    date <e:\work\Bat\text.txt
    pause

    结果:

    >&

    将一个句柄的输出写入到另一个句柄的输入中。

    <&

    刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中

    重定向符一般和句柄联用,也可不用

    常用句柄:0、1、2,未定义句柄:3—9
    1>nul 表示禁止输出正确的信息
    2>nul 表示禁止输出错误信息。

    ^

    转义字符,取消特殊符号的作用

    echo ^> >e:\work\Bat\text.txt
    pause

    结果:

    如果此时未使用“^"进行转义:

    echo > >e:\work\Bat\text.txt
    pause

    结果:

    %

    批处理变量引导符

    这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。
    引用变量用%var%,调用程序外部参数用%1至%9等等
    %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理的参数
    %0 批处理文件本身,包括完整的路径和扩展名
    %1 第一个参数
    %9 第九个参数
    %* 从第一个参数开始的所有参数
    参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
    例:最简单的复制文件自身的方法
    copy %0 d:\wind.bat
    小技巧:添加行内注释
    %注释内容%(可以用作行内注释,不能出现重定向符号和管道符号),此时“注释内容”其实被当作变量,其值是空的,故只起注释作用,不过这种用法容易出现语法错误,一般不用

    *

    通配符,表示任意个字符

    通配符,表示任意一个字符

    如:

    dir c:\?indows

    .

    表示当前目录

    dir .\  ::斜杠可要可不要

    ..

    表示上一级目录

    dir ..\

    " "

    字符串界定符,将一个范围内的内容界定出来,通常用来引用有空格的目录

    :

    标签定位符,表示后面的内容是一个标签名,可以使用goto指令跳转的标签

    如:

    @echo off
    :start
    echo Hello
    pause
    goto start

    结果:

    逗号相当于空格,在某些情况下“,”可以用来当做空格使

    dir,c:\

    分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。
    例:
    dir c:\;d:\;e:\;z:\
    以上命令相当于
    dir c:\
    dir d:\
    dir e:\
    dir f:\
    如果其中z盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。
    例:dir c:\;d:\;e:\1.txt
    以上命令相当于
    dir c:\
    dir d:\
    dir e:\1.txt
    其中文件e:\1.txt不存在,但e盘存在,有错误提示,但命令仍会执行。
    执行规则:
    1.如果目标路径不存在,则整个语句都不执行,例如dir c:\;c:\dfdfdf\a.txt,则根本不会执行,因为我没有c:\dfdfdf\这个目录;
    2.如果路径存在,仅文件不存在,则会继续执行,并且提示文件不存在的错误,例如:dir c:\;c:\temp\a.txt,我的目录中有c:\temp\文件夹,但这个目录下面没有1.txt这个文件。

    ()

    小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。

     echo 1 & echo 2 & echo 3
    可以写成:
    (
    echo 1
    echo 2
    echo 3
    )

    借鉴:https://blog.csdn.net/tuoni123/article/details/106525706

  • 相关阅读:
    join_tab计算代价
    outer join test
    突然觉得mysql优化器蛮简单
    将数据库字段从float修改为decimal
    小米初体验
    简述安装android开发环境
    Rust语言:安全地并发
    awk里的各种坑
    ubuntu下使用C语言开发一个cgi程序
    Ubuntu下安装和配置Apache2
  • 原文地址:https://www.cnblogs.com/yifengs/p/16357127.html
Copyright © 2020-2023  润新知