批处理脚本用法总结

news/2024/10/23 5:35:29/

目录

  • 一、常用命令
  • 二、基本语法
    • 1. rem 和 ::
    • 2. echo 和 @
    • 3. pause
    • 4. errorlevel
    • 5. title
    • 6. color
    • 7. goto 和 :
    • 8. find
    • 9. start
    • 10. assoc 和 ftype
    • 11. pushd 和 popd
    • 12. call
    • 13. if
  • 三、常用特殊符号
    • 1. @
    • 2. %
    • 3. >
    • 4. >>
  • 四、常见用法
    • 1. 设置临时环境变量
    • 2. 启动CMD执行命令
    • 3. 打开环境变量窗口
  • 参考资料:

  • 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于 DOS 和 Windows 系统中。批处理文件的扩展名为 bat(或 cmd)。通常我们指定的批处理指 DOS批处理脚本。
  • DOS 批处理则是基于 DOS 命令的,用来自动地批量地执行 DOS 命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同 C、Python 等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。

一、常用命令

常用命令也可见文章:链接

  • 文件夹管理
    • cd 显示当前目录名或改变当前目录。
    • md 创建目录。
    • rd 删除一个目录。
    • dir 显示目录中的文件和子目录列表。
    • tree 以图形显示驱动器或路径的文件夹结构。
    • path 为可执行文件显示或设置一个搜索路径。
    • xcopy 复制文件和目录树。
  • 文件管理
    • type 显示文本文件的内容。
    • copy 将一份或多份文件复制到另一个位置。
    • del 删除一个或数个文件。
    • move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)
    • ren 重命名文件。
    • replace 替换文件。
    • attrib 显示或更改文件属性。
    • find 搜索字符串。
    • fc 比较两个文件或两个文件集并显示它们之间的不同
  • 网络命令
    • ping 进行网络连接测试、名称解析
    • ftp 文件传输
    • net 网络命令集及用户管理
    • telnet 远程登陆
    • ipconfig显示、修改TCP/IP设置
    • msg 给用户发送消息
    • arp 显示、修改局域网的IP地址-物理地址映射列表
  • 系统管理
    • at 安排在特定日期和时间运行命令和程序
    • shutdown立即或定时关机或重启
    • tskill 结束进程
    • taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
    • tasklist显示进程列表(Windows XP Home Edition中没有)
    • sc 系统服务设置与控制
    • reg 注册表控制台工具
    • powercfg控制系统上的电源设置

二、基本语法

注意,bat 脚本不区分大小写。

1. rem 和 ::

:: 用于进行文本的注释,执行后不会回显内容。
rem 用于文本注释,执行后会回显内容。

2. echo 和 @

@字符放在命令前将关闭该命令回显,⽆论此时echo是否为打开状态。

  • 打开回显功能:echo on
  • 关闭回显功能:echo off
  • 输出空行:echo.echo,echo:echo/
  • 显示当前echo状态:echo
  • 输出提示信息:echo 信息内容
  • 答复提问:echo 答复语|执行的操作
  • 新建文件:echo 文件内容>文件名
  • 新增内容:echo 文件内容>>文件名
  • 喇叭鸣响:echo ^g

3. pause

使当前程序暂停,并输出以下内容,作用是为了让我们知道程序运行到哪步了。
显示其他提示语:echo 其他提示语 & pause > nul

在这里插入图片描述

4. errorlevel

获取程序返回码:echo %errorlevel%
每个命令运⾏结束,可以⽤这个命令⾏格式查看返回码。⽤于判断刚才的命令是否执⾏成功,默认值为0,⼀般命令执⾏出错会设 errorlevel 为1。

5. title

设置cmd窗口的标题,语法如下:

title 我的窗口

在这里插入图片描述

6. color

设置默认控制台的前景色和背景色,语法如下:

color [前景色][背景色]

颜⾊属性由两个⼗六进制数字指定 – 第⼀个为背景色,第⼆个则为前景色。每个数字可以为以下任何值之⼀。

数值颜色数值颜色
0⿊⾊8灰⾊
1蓝⾊9淡蓝⾊
2绿⾊A淡绿⾊
3湖蓝⾊B浅绿⾊
4红⾊C淡红⾊
5紫⾊D淡紫⾊
6黄⾊E淡黄⾊
7⽩⾊F亮⽩⾊

示例如下:
在这里插入图片描述

7. goto 和 :

通过goto:标号可以实现跳转执行命令。

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

8. find

在文件中搜索字符串,语法如下:

find [/v][/c][/n][/i][/off[line]] "字符串" [[drive:][path]filename[...]]
  • /v 显示所有未包含指定字符串的行
  • /c 仅显示包含字符串的行数
  • /n 显示行号
  • /i 搜索字符串时忽略大小写
  • /off[line] 不要跳过具有脱机属性集的文件
  • “字符串” 指定要搜索的字符串
  • [drive:][path]filename 指定要搜索的文件

9. start

批处理中用来调用外部程序的命令,语法如下:

start 外部程序 [参数]
  • 该命令将在新进程中运行外部程序,原批处理程序将继续执行
  • 执行运行外部程序则会等待外部程序完成后再继续执行后续指令
    例如:start explorer d:\ 将会使用图形界面打开D盘。

10. assoc 和 ftype

assoc 和 ftype 可实现文件关联,语法如下:

assoc .txt	::显示.txt代表的“文件类型”,结果显⽰.txt=txtfile
ftype		::显示所有的文件类型关联assoc .txt=Word.Document.8  ::设置.txt文件未word类型的文档,可看到.txt文件图标已改变

11. pushd 和 popd

主要用于保存并返回初始目录,示例如下:

cd /d d:\mp4 	::更改当前⽬录为 d:\mp4
pushd c:\mp3 	::保存当前⽬录,并切换当前⽬录为 c:\mp3
popd 			::恢复当前⽬录为刚才保存的 d:\mp4

12. call

CALL命令可以在批处理执⾏过程中调⽤另⼀个批处理,当另⼀个批处理执⾏完后,再继续执⾏原来的批处理,语法如下:

call 指定批处理文件

13. if

条件判断语句,语法如下:

if [not] errorlevel number command
if [not] str1==str2 command
if [not] exist filename command

三、常用特殊符号

1. @

用在任何命令前面,实现关闭当前行的回显.

2. %

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令⾏传递给批处理的参数
%0 批处理⽂件本⾝,包括完整的路径和扩展名
%1 第⼀个参数
%9 第九个参数
%* 从第⼀个参数开始的所有参数

3. >

DOS的标准输⼊输出通常是在标准设备键盘和显⽰器上进⾏的,利⽤重定向,可以⽅便地将输⼊输出改向磁盘⽂件或其它设备。其中:

  • ⼤于号 > 将命令发送到⽂件或设备,例如打印机>prn
  • 双⼤于号 >> 将命令输出添加到⽂件结尾⽽不删除⽂件中已有的信息
  • ⼩于号 < 从⽂件⽽不是键盘上获取命令所需的输⼊
  • >& 符号将输出从⼀个默认I/O流(stdout,stdin,stderr)重新定向到另⼀个默认I/O流

4. >>

>>> 有点类似,但他们的区别是 >> 是传递并在⽂件的末尾追加,⽽ > 是覆盖。

四、常见用法

1. 设置临时环境变量

在命令行模式下设置的环境变量,属于临时环境变量,只针对当前的CMD命令窗口有效,并不影响其他窗口中的环境变量,更不会影响到永久性的环境变量,要设置永久的环境变量,需要通过图形操作修改。

CMD

set path=%path%;C:\test  ::在原有环境变量的基础上追加环境变量

PowerShell

$env:path+="C:\test"

2. 启动CMD执行命令

start cmd /k    ::启动一个CMD且不关闭CMD
start cmd /c    ::启动一个CMD且关闭CMD
start cmd /k  "命令1 & 命令2 & 命令3"     ::无论前面命令是否成功, 后面都会执行
start cmd /k "命令1 && 命令2 && 命令3 "   ::仅当前面命令成功时, 才执行后面,一般用这个
start cmd /k "命令1 || 命令2 || 命令3"    ::仅当前面命令失败时. 才执行后面

3. 打开环境变量窗口

rundll32 sysdm.cpl,EditEnvironmentVariables

参考资料:

https://www.jb51.net/article/250331.htm
http://www.taodudu.cc/news/show-3034558.html
https://www.w3cschool.cn/dosmlxxsc1/wvqyr9.html
https://www.runoob.com/linux/linux-shell-variable.html
https://www.hxstrive.com/subject/windows_bat.htm?id=36
https://cloud.tencent.com/developer/article/2118950
https://www.yiibai.com/batch_script/
https://zhuanlan.zhihu.com/p/415626343
http://t.csdn.cn/hJaPh
http://t.csdn.cn/3R7Be
http://t.csdn.cn/zFfr5
http://t.csdn.cn/JmcoH
http://t.csdn.cn/ui048


http://www.ppmy.cn/news/46314.html

相关文章

systemctl 命令设置开机自启动失败

1.案例现象 我在 3 月 31日的时候发表了一篇《shell 脚本之一键部署安装 Nginx 》&#xff0c;介绍了如何通过 shell 脚本一键安装 Nginx 我脚本中执行了 Nginx 开机自启动的命令&#xff0c;当我使用 systemctl status nginx 命令复核的时候&#xff0c;我发现 Nginx 服务设…

redis学习

Redis 1.安装 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #修改网络安装gcc依赖 yum install -y gcc tclcd redis-6.2.11 make && make installcp redis.conf.bck redis.conf #修改redis.conf bind 0.0.0.0 daemonize yes requirepass 123456cd /usr/local/src…

Attention注意力机制

加粗样式通俗理解&#xff1a;你会注意什么&#xff1f; 对于一个模型而言&#xff08;CNN&#xff0c;LSTM&#xff09;&#xff0c;模型本身很难决定什么重要什么不重要&#xff0c;因此注意力机制诞生了。 注意力机制&#xff1a;我们会把焦点聚焦在比较重要的事务上 怎么…

一本通 3.4.6 拓扑排序

1352&#xff1a;【例4-13】奖金 【题目描述】 由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出&#xff0c;Yali Company总经理Mr.Z心情好&#xff0c;决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。 于是Mr.Z下令召开m方会谈…

Markdown 使用 Emoji 表情 MD格式小表情大全

文章目录 Markdown 使用 Emoji 表情 && MD格式小表情大全# 复制和粘贴表情符号# 使用表情符号简码MD格式小表情大全结语Markdown 使用 Emoji 表情 && MD格式小表情大全 有两种方法可以将表情符号添加到Markdown文件中:将表情符号复制并粘贴到Markdown格式的文…

1.4 Docker Swarm-详细介绍

Docker Swarm 是 Docker 官方推出的容器编排工具&#xff0c;用于管理 Docker 容器集群。Docker Swarm 的主要功能包括容器的部署、扩容、缩容、更新等。本文将详细介绍 Docker Swarm 的相关概念、架构、部署和使用方法。 一、Docker Swarm 概述 Docker Swarm 是 Docker 官方…

10、数据库学习规划:MySQL - 学习规划系列文章

MySQL数据库是笔者认识的几个流行的数据库之一。类似于Linux重装系统&#xff0c;其也是开源的&#xff0c;最主要是有很多的社区支持&#xff0c;众多的开发者对其能够进行使用&#xff0c;所以其功能也挺强大&#xff0c;便于使用。通过对MySQL数据库的学习&#xff0c;笔者认…

《计算机算法设计与分析》课后练习07

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 我行及我道 //算法&#xff1a;用A(m)划分集合A(m:p-1) procedure PARTITION(m,p)integer m,p,i; global A(m:p-1)v A(m); i m //A(m)是划分元素…