【Windows批处理】常用内部命令简介

ECHO 和 @

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置

echo

在这里插入图片描述

echo on
echo 第一个批处理

在这里插入图片描述

echo off
echo 第一个批处理

在这里插入图片描述
加@代表不显示当前行命令自身,我们习惯上不显示回显,所以通常情况下这样写

@echo off
echo 第一个批处理

在这里插入图片描述

REM 和 ::

rem 是 注释命令,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。会回显,受 echo on 和 echo off 控制
::也是注释,但不会回显。不建议使用

所以如果我们把回显打开

@echo on
rem 这是一条注释
:: 这也是一条注释
echo Hello World

在这里插入图片描述

PAUSE

暂停命令。运行 Pause 命令时,将显示下面的消息:Press any key to continue. . .(或:请按任意键继续. . .)

@echo off
echo 端午
pause
echo 快乐

在这里插入图片描述

@echo off
echo 端午
echo 快乐 & pause > nul
echo 在家
pause
echo 待著吧

在这里插入图片描述
可以注意到 echo 快乐 & pause > nul 时没有输出。因为已经把结果输出重定向一个空设备,让命令处理结果不显示了2

TITLE、COLOR、MODE

title cmd窗口显示的标题
color cmd控制台显示的颜色,前一位数字表示背景色,后一个字母则为前景。每个数字可以为以下任何值之一

0 = 黑色 1 = 蓝色 2 = 绿色 3 = 湖蓝色
4 = 红色 5 = 紫色 6 = 黄色 7 = 白色
8 = 灰色 9 = 淡蓝色 A = 淡绿色 B = 淡浅绿色
C = 淡红色 D = 淡紫色 E = 淡黄色 F = 亮白色

mode 设置命令行窗口大小,cols是列,lines是行

@echo off
title 今日份批处理
mode con cols=40 lines=10 & color f2
echo Hello World

在这里插入图片描述

goto和:

在批处理中允许以":XXX"来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令

@echo off
:start
set /a var+=1
echo %var%
if %var% leq 3 goto start
pause

在这里插入图片描述

find 和 type

find:从文件中收索字符串
type:查看文件内容

@echo off
echo 111aaa > test.txt
echo 222bbb >> test.txt
find "111" test.txt
del test.txt
pause
echo 111 > test.txt
echo 222 >> test.txt
type test.txt | find "111"
del test.txt
pause

在这里插入图片描述

start

启动单独的"命令提示符"窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口

@echo off
start explorer d:\
echo hello

运行程序发现直接调用资源管理器显示 d 盘内容,同时后边的 hello 也输出了,说明原来程序并没有关闭
在这里插入图片描述

assoc 和 ftype

不同类型的文件,需要不同的文件查看器。例如xlsx表格需要使用Office Excel或WPS,PDF文件需要使用Adobe reader或福昕阅读器等等。assoc的作用就是显示或修改文件扩展名关联

直接执行 assoc 显示所有’文件扩展名’关联,部分执行结果

assoc

在这里插入图片描述
显示.txt代表的文件类型,结果显示 .txt=txtfile;显示 .doc 代表的文件类型,结果显示 Word.Document.8

@echo off
assoc .txt

在这里插入图片描述
ftype:显示文件类型关联
如果直接执行 ftype,部分执行结果
在这里插入图片描述

ftype exefile

在这里插入图片描述

pushd、popd 和 CALL

这两个命令的作用都是 切换当前目录

@echo off
c: & cd\ & md mp3
md d:\mp4
cd /d d:\mp4
pushd c:\mp3
popd

在这里插入图片描述
执行这条命令后在 c 盘根目录创建一个 mp3 文件夹,同时进入到了 c 盘根目录。cd\ 是进入根目录,md命令可以创建文件
在 D 盘创建一个 mp4 文件夹
进入到 d:\mp4 文件夹中,使用 /D 命令行开关,除了改变驱动bai器的du当前目录zhi之外,还可改变当前驱动器
保存当前目录,也就是 d:\mp4,然后进入 c:\mp3
恢复上次保存的目录,也就是 d:\mp4

CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理。调用本文件内命令段,相当于子程序。被调用的命令段以标签 :label 开头
以命令 goto :eof 结尾。结合 pushd 和 popd 看一个栗子

@echo off
Echo 产生一个临时文件 > tmp.txt
Rem 下行先保存当前目录,再将c:\windows设为当前目录
pushd c:\windows
Call :sub tmp.txt
Rem 下行恢复前次的当前目录
Popd
Call :sub tmp.txt
pause
Del tmp.txt
exit
:sub
Echo 删除引号: %~1
Echo 扩充到路径: %~f1
Echo 扩充到一个驱动器号: %~d1
Echo 扩充到一个路径: %~p1 
Echo 扩充到一个文件名: %~n1
Echo 扩充到一个文件扩展名: %~x1
Echo 扩充的路径指含有短名: %~s1 
Echo 扩充到文件属性: %~a1 
Echo 扩充到文件的日期/时间: %~t1 
Echo 扩充到文件的大小: %~z1 
Echo 扩展到驱动器号和路径:%~dp1
Echo 扩展到文件名和扩展名:%~nx1
Echo 扩展到类似 DIR 的输出行:%~ftza1
Echo.
Goto :eof

在这里插入图片描述

if

1、结合errorlevel使用

@echo off
dir d:
rem 退出代码>=1,就跳到1;>=0跳至0
if errorlevel 1 goto 1
if errorlevel 0 goto 0
:0
echo 命令执行成功
goto exit
:1
echo 命令执行失败
goto exit
:exit
pause

if errorlevel 值 cmmand 句式,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand
执行成功时
在这里插入图片描述
第二行代码改为一个不存在盘符时, dir e:,会执行失败
在这里插入图片描述
2、判断字符串相等

@echo off
if "cat"=="cat" (echo yes) else echo No

这里是区分大小写的。除了使用引号,也可以使用中括号[ ]和大括号{ }包裹字符串

3、判断文件存在与否

@echo off
if exist a.txt echo 文件存在
@echo off
if not exist a.txt echo 文件不存在

手把手教你写批处理
.bat脚本基本命令语法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章