BZ易风

导航

 

@

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

&

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

例:

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

posted on 2022-06-08 20:36  BZ易风  阅读(227)  评论(0编辑  收藏  举报