cmd脚本

管道命令

|

|命令的作用,就是让前一命令的输出当做后一命令的输入。

>

>会清除掉原有文件中的内容后把新的内容写入原文件: echo @echo off > a.bat。

>>

>>只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容。

<

<是输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。

>&

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

<&

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

组合命令

&

&命令作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。

&&

&&可以把它前后两个命令组合起来当一个命令来用,一旦发现有命令出错将不继续执行剩下的命令。

||

||命令执行正确就退出此命令组合,不再执行剩下的命令。

其他符号

;

分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。

dir c:\;d:\;e:\; > 1.txt

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

dir,C:\

“”

双引号允许在字符串中包含空格:

cd,”C:\ program files”

()

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

(echo a && echo bb) > 1.txt

!

在变量延迟问题中,用来表示变量,即%var%应该表示为!var!

路径变量

@echo off
echo 获取的当前盘符是:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
pause

注释

     1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
     2、rem 注释内容(不能出现重定向符号和管道符号)
     3、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
     4、:标签 注释内容(可以用作标签下方段的执行内容)

常用辅助命令

echo: 表示显示此命令后的字符
echo on: 表示在此语句后所有运行的命令都显示命令行本身
echo off: 表示在此语句后所有运行的命令都不显示命令行本身
@: 与echo off相像,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)
call: 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)
pause: 运行此句会暂停批处理的执行并在屏幕上显示”Press any key to continue…”的提示,等待用户按任意键后继续
rem: 表示此命令后的字符为注释,不执行
title: Bat的标题

常用命令

MODE CON COLS=90 LINES=20      //设置窗体大小
color 02       //设置显示的背景和前景色
cls            //清屏
where java     //查询命令所在目录

编码格式

ANSI编码,否则乱码。

获取输入值

@echo off
Set /p param=请输入:
echo 你输入的是:%param%
pause

Dir命令

help dir用来查看dir命令的详细属性。

获取某文件夹下所有文件名

dir \\?\%1 /a:-d /b /o /p /w >FileList.txt

参数解读:

\\?\      #代表电脑的根目录
%1       #代表自身,可以通过拖拽到脚本上获取
/a:-d    #代表具有目录(-d目录其实是指的文件)属性的文件
/b        #使用空格式(没有标题信息或摘要)
/o        #用分类顺序列出文件
/p        #在每个信息屏幕后暂停
/w       #用宽列表格式。

获取D盘下所有MP4格式的视频

dir /a /b /s D:\*.mp4>filePathList.txt

参数解读:

/s    #显示指定目录和所有子目录中的文件。
/a    #显示具有指定属性的文件。
/b    #使用空格式(没有标题信息或摘要)

根据盘符和后缀获取所有路径的文件

@echo off
color 02
title 查找分区指定后缀文件
echo       =======                                                         =======
echo                        欢迎使用文件查找小工具
echo       =======                                                         =======    
echo        本程序能将指定的盘符指定的文件类型查找出来,并显示出全路径
echo ---------------------------------------------------------------------------
::@echo off  
:begin
set /p drive=请输入需要查找的盘符(例如: C): 
set /p type=请输入需要查找的文件类型(例如: mp4):
dir>%drive%目录.txt /s /a /b %drive%:\*.%type%
::start %drive%目录.txt
echo 搜索%drive%盘*.%type%文件完成,存储于%drive%目录.txt中 & pause
goto begin

 

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *