运维必学 | 初识介绍-从零开始学Windows批处理(Batch)编程系列教程

news2024/9/29 3:31:11

欢迎关注「全栈工程师修炼指南」公众号

设为星标⭐每天带你 基础入门 到 进阶实践 再到 放弃学习

专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享

  花开堪折直须折,莫待无花空折枝 


作者主页:[ https://www.weiyigeek.top ]  

博客:[ https://blog.weiyigeek.top ]

作者<安全开发运维>答疑交流群,回复【学习交流群】即可加入


文章目录:

edb1f386fbf3eac935101c36e41a8864.png

本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。

0x00 前言简述

描述: 【WeiyiGeek】作者作为一名运开(万金油)学习的东西又多又杂,好处就是知识面广,缺点是多而不精,所以作者痛定思痛,把当前自己岗位职业所需的技术知识重新梳理,在帮助自己的同时又帮助各位想从事运维相关的工作职业的朋友。

作者WeiyiGeek将对Windows BAT批处理编程发布学习系列教程,BAT批处理在进行Windows服务器运维中占有举足轻重的地位,能非常方便帮助我们操作管理Windows,当然在可能有的朋友会说现在在windows Server 2019之后通常会采用PowerShell编写对应的管理脚本,还有必要学习Bat,此处作者认为还是有必要的,因为企业中还有一部分存量的业务仍然跑在Window Server 2008 乃至 2003 在此系统中的PowerShell 版本通常是 v1.0 且功能有限,更多的是采用BAT批处理所以学习Windows批处理还是有必要的,其次学习BAT批处理也能加深Windows Dos相关命令的学习,如果你还是一名网络安全人员也是必须要学习了解的。

话说得有点多了,总之就一句话如果感觉此文不错,请多多点赞、转发、在看、赞赏支持,以及关注【全栈工程师修炼指南】公众号吧。

若需一起交流学习,请关注后回复【微信交流群】即可共同学习,共同进步。

温馨提示: Window Batch 批处理系列教程示例脚本可访问作者Github仓库中DevelopLearnig的项目,✈ 直达 -> https://github.com/WeiyiGeek/DevelopLearnig/tree/main/TerminalScript/bat


0x01 什么是批处理(Batch)?

描述: 批处理(Batch)也称为批处理脚本。顾名思义, 批处理就是对某对象进行批量的处理, 通常被认为是一种简化的脚本语言, 它应用于DOS和Windows系统。

目前Windows中的批处理包含两类:Windows DOS (BAT) 批处理和 PowerShell 批处理

  • DOS 批处理:基于Windows DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

  • PowerShell 批处理 : 基于强大的.NET,是一种用于 Windows 操作系统的脚本语言和命令行工具。

此处作者暂时介绍本系列的主人公Windows bat(批处理),在后续作者也将会总结推出 PowerShell 编程系列系列学习入门。

Q: 什么是Windows bat(批处理)?
Windows bat(批处理)是一种用于 Windows 操作系统的脚本语言和命令行工具,它使用扩展名为 .bat 或 .cmd 的文件,其中包含一系列的命令和指令,用于自动化执行一组任务或操作。包括但不限于文件和文件夹的创建、复制、删除、移动,运行程序和命令,设置环境变量,修改注册表等

除此之外,Windows bat 批处理脚本使用一种简单的命令语法,可以包含条件判断 if、循环 for、变量定义 set、 跳转 goto 等基本编程功能如同C、Basic等高级语言一样,它适用于简单的自动化任务和批量处理操作,例如批量重命名文件、批量修改文件内容等。如果还需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

综上所述,Windows bat 批处理脚本在系统管理和日常操作中非常有用,可以提高工作效率和简化重复性任务的执行。它也可用于创建简单的安装程序或自动化脚本,方便进行系统配置和部署。

Q: 如何学习Windows bat(批处理)?
描述: 此处作者学习DOS批处理一共分为4️⃣个部分,第一部分是批处理的专用命令,第二部分是特殊的符号与批处理,第三部分是批处理与变量,第四部分是企业中完整的BAT批处理编程案例。

好,开始进入正题吧,从入门到加薪!


0x02 批处理(Batch)基础

描述:此处我们先从下述几个批处理(Batch)命令学起,如 echo@pauseremcallstart(小技巧:用::代替rem)以及cls、``,它们都是批处理文件最常用的命令,通过简单的示例看一下bat脚本。

echo : 显示显示此命令后的字符串

# <!-- hello-bat.bat -->
echo.    # 表示换行输出,注意点是紧接着echo的没有空格
echo off # 表示在此语句后所有运行的命令都不显示命令行本身. 
(echo www.weiyigeek.top)

温馨提示: 所以为了不显示命令本身,一般都会再批处理头部加上@echo off,这样便不会显示命令本身了.


偷偷的告诉你哟?极客全栈修炼】微信小程序已开放

可直接在微信里面直接浏览博主文章哟,后续将上线更多有趣的小工具。


@ :表示运行时不显示此行原始命令

描述: 此命令与 echo off 相似,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)

@echo off
@echo "不会输出原始的 echo 命令"

pause : 运行此句会暂停批处理的执行

温馨提示: 运行此命令时会在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续

示例1:未加 @ 命令 以及 echo off 指令执行bat命令

# <!--1.echo-pause.bat -->
echo "Hello world! Windows Bat."
(echo "Author: weiyigeek")
echo.
echo "Blog: blog.weiyigeek.top"
pause

示例2.使用 echo off 指令 以及 @ 命令 的bat批处理,(温馨提示脚本若有中文,可以将bat文件内容编码格式设置GBK,或者将将终端编码设置为UTF-8, 例如 chcp 65001 后续介绍)

@echo off
echo "Hello world! Windows Bat."
echo "使用 @ 与 echo off 指令。"
@pause

189d08e189ea6a5f322816eb793e166f.png

rem :表示此命令后的字符为解释行 (:: 也是注释)不执行相当于程序中的注释。

@echo off
echo "Hello world! rem."
echo "使用 @ 与 echo off 指令。"
rem echo 我是注释不执行1
:: echo 我是注释不执行2
== echo 我不是注释要执行
@pause

call :调用另一个批处理文件

描述: 使用call命令调用其他批处理文件,如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令,温馨提示:同一目录可以不加路径

@echo off
echo "开始调用,Call 到 notepad.bat
call notepad.bat
echo "调用完毕,回到 %0.bat"
pause

36be6576922a1954773677656c0899bb.png

start: 启动一个单独的窗口运行指定的程序或命令

描述:与call命令不同得是,它不依托于父shell的即不会阻塞

@echo off
echo "从这里开始start到notepad.bat"
start notepad.bat
echo "start会独立于cmd父Shell,%0.bat"
pause

d620f4ba75be3287a62a6ba0154b5e35.png

goto : 跳转到指定片段

描述: GOTO 即为跳转的意思,在批处理中允许以“:XXX”来构建一个标号,然后用GOTO :标号直接来执行标号后,标号用“:字符串”来定义,标号所在行不被执行。

示例1.goto 命令跳转到指定片段处,并依次执行

@echo off

:TestG
REM "# GOTO跳转案例"
whoami && hostname

:TestT
date /t
pause
REM # 可以多次调用TestG标签后的批处理

goto TestG

温馨提示:上述示例代码脚本会产生死循环效果。

示例2.goto 命令多用在判断和分支之中,此处作为了解即可,后续我们会学习到条件判断

@echo off
if {%1}=={} goto noparms
if {%2}=={} goto noparms

@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end

:end
echo "程序结束!!"
pause

034d1dfb09fa545428ec39eabb9e3537.png

timeout :脚本延迟执行

描述: 此命令主要用于脚本延迟执行,其类似于PowerShell中的sleep方法以及Linux中sleep命令。
语法示例

# 语法
TIMEOUT [/T] timeout [/NOBREAK]

# 参数列表:
/T        timeout       指定等候的秒数,有效范围从 -1 (表示无限期地等待按键)到 99999 秒。
/NOBREAK                忽略按键并等待指定的时间。

示例演示:

# 1.按任意键停止超时
c:\Windows\System32>timeout /T 10 & whoami
等待  0 秒,按一个键继续 ...
security\weiyigeek

# 1.按ctrl+c停止超时
c:\Windows\System32>timeout /T 5 /NOBREAK & whoami
等待 0 秒,按 CTRL+C 退出 ...
security\weiyigeek

亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?

a23502d623fa2e94682c3a4774b9ad85.jpeg

cls : 清理屏幕显示

描述: 此命令用于清理windows cmd中界面显示的数据,即达到清屏的效果, 该命令使用非常简单执行cls即可。

echo "我是将会被清理掉的字符串"
CLS
echo "我是清理屏幕后执行的"

type :显示文本文件的内容

描述:此命令用于在cmd中打开文本文件并输出内容到终端, 该命令使用也是非常的简单。

语法参数

TYPE [drive:][path]filename

示例演示:

echo "weiyigeek.top" >> weiyigeek.txt
type weiyigeek.txt

本文至此完毕,更多技术文章请访问作者博客,尽情等待下篇好文!

原文地址: https://blog.weiyigeek.top/2023/6-25-752.html

如果此篇文章对你有帮助,请你将它分享给更多的人! 

c378c9a36d3433e0fb1b6cd6cc6a3361.gif

4c147cc02d1c441b1005863d3e19dd78.png 学习书籍推荐 往期发布文章 474d19628a5774269d2d2f8252a693d9.png

回复【0008】获取【Ubuntu22.04安装与加固脚本】

回复【10001】获取【WinServer安全加固脚本】

回复【10002】获取【KylinOS银河麒麟安全加固脚本】

回复【0011】获取【k8S二进制安装部署教程】

回复【0014】获取【Nginx学习之路汇总】

回复【0015】获取【Jenkins学习之路汇总】

回复【10005】获取【adb工具刷抖音赚米】

 热文推荐  

  • 完整的Windows与Linux服务器系统安全加固实践和基线检测脚本(等保2.0)

  • 【脚本分享】- Windows下利用Powershell进行MySQL数据库备份

  • Linux与Windows下的iSCSI网络存储共享实例操作

  • Windows认证原理解析基础入门

欢迎长按(扫描)二维码 取更多渠道哟!

41cef4c1523fc66059c462f6771e865b.gif

欢迎关注 【全栈工程师修炼指南】(^U^)ノ~YO

添加作者微信【weiyigeeker】,拉你一起学习交流吧!

关注回复【学习交流群】即可加入【安全开发运维沟通交流群

温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址 master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。

朋友点个【赞 + 在看】吧!

点击【"阅读原文"】获取更多有趣的知识!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/711805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ACL 2023长文 | 基于能量超球体模型提升以事件为中心的结构化预测

论文标题&#xff1a; SPEECH: Structured Prediction with Energy-Based Event-Centric Hyperspheres 收录会议&#xff1a; ACL 2023 Main Conference 论文链接&#xff1a; https://arxiv.org/abs/2305.13617 开源链接&#xff1a; https://github.com/zjunlp/SPEECH 总述 以…

硬件知识:条码打印机5大接口类型介绍

目录 1、串口 2、并行接口 &#xff08;并口&#xff09; 3、USB接口 4、网口 5、PS/2接口 接口选择的不同&#xff0c;其打印输出的速度也不同。 条码打印机与计算机之间都是通过接口连接的&#xff0c;条码打印机常见的分为5种接口&#xff1a;串口&#xff08;也有称之…

分布式学习第五条 Nginx + FastDFS

使用nginx和FastDFS可以实现下载&#xff0c;类似百度网盘&#xff0c;需要对环境进行配置&#xff0c;nginx作为代理服务器&#xff0c;fastDFS负责执行上传下载操作。 1. 文件上传下载流程 文件上传流程 文件下载流程 优化 优化思路: 直接让客户端连接fastDFS的存储节点, …

Flutter之 Bloc实战实现购物车功能

Flutter之 Bloc实现购物车功能 前言商品列表模块状态设置UI设计业务逻辑测试代码购物车模块状态设置业务逻辑UI设计加入购物车测试代码参考资料前言 本篇以官方购物车项目为例,说明Bloc在Flutter的应用。该项目很简单,就两个模块,一个是商品列表页面模块catalog,一个是购物…

使用gradio库的File模块实现文件上传和展示

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

MATLAB迭代

目录 黄金分割比 习题 符号运算 固定点 WHY hello world Goldrect 黄金分割比 format for循环 %% For loopx 42for k 1:12x sqrt(1x);disp(x)end while循环 %% While loopx 42;k 1;while abs(x-sqrt(1x)) > 5e-5x sqrt(1x);k k1;endk 绘图语句 %% Plotx -pi:…

现在的前端,到底是技术深度重要,还是技术广度重要?

前言 大家好&#xff0c;&#xff0c;用最通俗易懂的话讲最难的知识点是我的座右铭&#xff0c;基础是进阶的前提是我的初心。 前几天跟朋友讨论“技术广度和技术深度哪个重要”&#xff0c;再想想自己像过山车一般的前端历程&#xff0c;有感而发&#xff0c;想给小兄弟们一…

简单的学习下 JavaScript 录屏API

学习如何使用这个简单易用的API进行屏幕共享、屏幕录制等操作。尽管需要对JavaScript有一定的了解&#xff0c;但我相信你已经具备了这方面的知识。 1、开始录制 让我们创建一个按钮&#xff1a; <button id"recording-toggle">Start recording</button>…

BUUCTF变异凯撒

根据题目可以得知&#xff0c;这道题使用的是凯撒密码 凯撒密码&#xff0c;是一种位移加密方式&#xff0c;只对26个字母进行位移替换加密&#xff0c;规则简单&#xff0c;容易破解。 但是根据题目下发的文件看来&#xff0c;出现了关于除字母以外的字符&#xff0c;结合题目…

综合评价算法 | Matlab实现基于变异系数法的综合评价算法

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 综合评价算法 | Matlab实现基于变异系数法的综合评价算法 研究内容 变异系数法是根据统计学方法计算得出系统各指标变化程度的方法,是一种客观赋权法。根据该方法变化差异较大的指标权重较大,变化差异较…

【C++ 实现】图论概念,最小生成树,单/多源最短路径实现

文章目录 数据结构表示图最小生成树KruskalPrim 最短路径DijkstraBellman-Ford算法多源最短路径&#xff1a;FloydWarshall 总结 数据结构表示图 首先节点的存取&#xff0c;V是节点key&#xff0c;vector<pair<V,V>> map;其实已经能表达一个图了&#xff0c;但是…

MWCS 2023,到底有些啥?(上篇)

大家好&#xff0c;MWCS 2023&#xff08;世界移动通信大会上海展&#xff09;已经结束了。按照老规矩&#xff0c;我来给大家汇报一下现场情况。 █ 展会总结 今年是MWC在中国的第十届&#xff0c;也是疫情管控解除后的第一届。从总体情况来看&#xff0c;人气非常火爆。展区人…

ElasticSearch - 根据经纬度,简单搜索指定距离范围内的数据

ES的地图检索方式 ES支持的地图检索方式有以下几种&#xff1b; geo_distance geo_bounding_box geo_polygon 1、geo_distance&#xff1a;直线距离检索&#xff0c;如给定点A&#xff0c;要求返回地图上距离点A三千米的商家&#xff08;点外卖场景&#xff09; 2、查找索引…

下半年就该这么干!

阅读本文大概需要 0.99 分钟。 周末一般不更新&#xff0c;不过今天有点特殊。 是这样的&#xff0c;前几天不是通知说我们 7 月 8 日会在杭州举办线下大会么&#xff1f;完了之后发现后台很多私信问怎么参加的&#xff0c;这才想起我这个公众号还没发让大家进预约群的入口。。…

前端使用mysql记录。以本机作为服务器,安装mySql。Dbeaver的基本使用

安装 Mac 上如何安装Mysql&#xff1f; Mac 上如何安装Mysql&#xff1f; Mysql 配置 在mac终端打开文件&#xff1a;vi ~/.bash_profile 加入语句&#xff1a;PATH$PATH:/usr/local/mysql/bin 使配置的语句生效&#xff1a;source ~/.bash_profile 使用命令行 sudo vi /et…

【读书笔记】《月亮与六便士》- [英] 威廉·萨默塞特·毛姆 - 1919年出版

不停的阅读&#xff0c;然后形成自己的知识体系。 2023.07.03 读 一直听说毛姆的大名&#xff0c;却一直没有拜读。记得《小王子》中有读者提到这本书&#xff0c;看了眼作者竟然发现是毛姆。那么毫不犹豫的&#xff0c;赶紧拜读一番。 文章目录 作家榜推荐词第一章第二章第三…

Spring核心原理解析

1.Bean的生命周期底层原理 AppConfig package com.zhouyu;import com.zhouyu.service.OrderService; import org.springframework.context.annotation.*;ComponentScan("com.zhouyu") public class AppConfig {Beanpublic OrderService orderService1(){return new…

微机实验一:认识实验系统和联机通讯实验

实验目的 讲清楚进行本实验后要学到的知识、掌握的数据结构及共定义和农示方法&#xff0c;讲清楚所采用的算法 wrTPL-486微机原理及接口技术数学实验手统的操u)孰秀TPC-480联机集闯开发调试故件的操作环境3)3俩文丝计体机的基阻成和4、存储器并有接新i的置(了解岗单汇海语谢设…

Nginx【location指令、虚拟主机的分类、Nginx支持三种类型的虚拟主机配置 】(三)-全面详解(学习总结---从入门到深化)

目录 Nginx配置指令详解_location指令 虚拟主机的分类 Nginx支持三种类型的虚拟主机配置 Nginx配置指令详解_location指令 配置location块 语法&#xff1a; URL // http://ip:port/ location [ | ~ | ~* | ^~] uri {... } 示例1 没有修饰符 表示&#xff1a;必须以指…

UE5 MetaHuman SDK插件的使用【二、聊天机器人】

目录 制作&#xff1a; 流程制作【相对复杂但逻辑清楚】&#xff1a; 快速制作【有个函数把上面的流程全部合在了一起&#xff0c;只需要用一个函数即可】 3个结构体的参数 combo后面的逻辑&#xff1a; 效果&#xff1a; ​编辑 代码 在前面的文章中&#xff0c;我们创…