windows的bat文件(学习笔记)

简介

通过windows的cmd执行的批处理,扩展名可以是.bat或.cmd(类似linux的shell脚本)

所有语句符号不区分大小写

帮助提示信息:命令 /? 

1 基本语法

(1) 注释:rem 注释文本不执行

(2) 关闭盘符输出:@echo off  // 不输出 默认的【c:/xxx/xx>】信息

(3) 输入信息:set /p 变量名=[提示信息]

(4) 输出信息:echo 文本信息或变量 // echo原样输出文本包括双引号,或%包裹的变量

(5) 结束符:pause[>nul] // 不写pause程序结束会直接关闭窗口,不加>nul最后会输出【请按任意键继续】

2 变量与运算符

2.1 变量

变量不区分类型,没有数值型字符型区分。

(1) 定义变量:set 变量名=值 //变量名不存在则为定义值。变量名=值,不能有空格

(2) 修改变量:set 变量名=值 //变量名存在则为修改值。变量名=值,不能有空格

(3) 删除变量:set 变量名= //不给任何值则为删除,

(4) 使用变量:%变量名%

(5) 查看变量:set // 查看变量列表

2.2 算术运算符

加减乘除余(+-*/%)

(1) 加算:set /a 变量=值+值

(2) 减算:set /a 变量=值-值

(3) 乘算:set /a 变量=值*值

(4) 除算:set /a 变量=值/值

(5) 余算:set /a 变量=值%%值 // 余算%需要写2个做转义处理

注释:算术表达式遵循先乘除后加减原则,可以加小括号进行优先计算

2.3 赋值运算符

 =+=-=/=%%=

注释:余算需要双%做转义

2.4 逻辑运算符

(1) 并且:&&  // 条件1 && 条件2  (1不满足,不执行2)

(2) 并且:&  // 条件1 & 条件2  (1不满足,也执行2)

(3) 或者:||  // 条件1 || 条件2  (1满足,不执行2)

(4) 管道运算符:|  // dir | find ".txt" 输出结果语句后 | 加 find 文本 过滤出指定信息的结果

2.5 转义字符

有特殊含义符号,输出时需要做转义处理

^<

^>

^&

^|

%%

3 文件处理

3.1 定向操作符

(1) echo 文本信息 > 文件名.后缀  // 当前文件夹下有文件内容全替换,无文件作成文件及内容

(2) echo 文本信息 >> 文件名.后缀 // 当前文件夹下有文件内容换行追加,无文件作成文件及内容

3.2 文件查看

(1) 查看文件夹: dir // 查看当前文件夹下,文件夹及文件名

(2) 切换文件夹: cd .. | ../文件夹 | 文件夹 // 切到上级文件夹,上级文件夹的子文件夹,子文件夹。正反斜线都可

(3) 查看文件内容: type [文件夹\]文件名.后缀 // 显示文件内容

(4) 显示文件层级目录: tree [/a] [/f] // 显示当前文件夹内,所有文件夹层级目录,a显示不同,f文件也显示

3.3 文件夹操作

(1) 创建文件夹: mkdir | md [文件夹\] 文件夹 // 创建文件夹,多级文件夹 

(2) 删除文件夹: rmdir | rd [/s [/q] ] [文件夹\] 文件夹 // 删空文件夹,删最里层文件夹,s内部全删,q不确认

(3) 重命名文件夹: rename | ren 文件夹 新文件夹名 // 重命名

3.4 文件操作

(1) 复制: copy | xcopy [/y(默认覆盖) | /-y(提示存在确认)] 文件夹|文件 目标文件夹 // 将文件夹内文件(不含文件夹及内容)或指定文件,复制到目标文件夹内,xcopy大量文件更快

(2) 删除文件: del [/p] [/f] [文件夹\] 文件名 | *.后缀 // 删除文件,p删除前确认,f强删只读, *范围匹配

(2) 删除文件夹下文件: del [/s] 文件夹[文件夹\] *.后缀 // 删除文件夹, *文件夹子级文件,s文件夹所有层级文件

(3) 剪切: move [/y(默认不提示) | /-y(覆盖提示)] [文件夹\]文件.后缀 [文件夹\]新文件名.后缀 // 剪切文件,同文件夹可改文件名,

4 流程控制

4.1 分歧

(1) 条件判断:if 条件 (...) else if 条件 (...) else (...)

(2) 文件存在判断:if [not] exist [c:\文件夹 | 文件夹\]文件.后缀 | 文件夹 (...) // 判断文件或文件夹是否存在

(3) 变量存在判断:if [not] defined 变量名 (...) //判断变量是否存在

4.2 条件判断

(1) 等于: if [变量==变量 | 变量 equ 变量]

(2) 不等于:if [not 变量==变量 | 变量 neq 变量]

(3) 小于:if 变量 lss 变量

(4) 小于等于:if 变量 leq 变量

(5) 大于:if 变量 gtr 变量

(6) 大于等于:if 变量 geq 变量

(7) 不区分大小写:if /i 变量 eq 变量

4.3 循环

(1) 循环数值:for /L %%临时变量 in (开始值, 增加值, 结束值) do (...) //临时变量只能是1个字母

(2) 循环文件:for /r "c:\文件夹 | 文件夹" %%临时变量 in (文件名.后缀 | *.*) do (...)

(3) 循环固定数据:for %%临时变量 in (值, 值, 值,...)

(4) 循环文件内容:for /f in [c:\文件夹\]文件名.后缀

(5) 循环当前文件夹下文件夹:for /d %%临时变量 in (* | 文件夹\*) // 遍历当前文件夹或in指定文件夹下的文件夹名

4.4 跳转与结束

(1) 定义代码块:【:代码块名 // 分号后定义名称,使goto可识别该名称,语句不执行

(2) 跳转:goto 代码块名  //使程序跳转到该行,再继续向下执行

(3) 结束程序:exit // 退出程序,跟在pause之后

5 日期字符处理

5.1 日期时间

(1) 显示当前日期:date /t

(2) 设置当前日期:date 日期

(3) 显示当前时间:time /t

(4) 设置当前时间:time 时间

注释:改变的是本地计算机的系统日期时间

5.2 字符串

(1) 截取字符串:%变量名:~[(正)开始下标 | (负)倒数位数], [(正)获取数量 | (负) 不含结尾数量] %//省略第二个值表示取到结尾

(2) 替换字符串: %变量名:目标字符=新值%

(3) 拼接字符串:%变量%%变量% // 或 文本后直接写%变量% 

6 窗口

(1) 窗口颜色:color 背景色文字色 // 例如 color 14  (1背景蓝色,4文字红色)

(2) 窗口标题:title 标题名

(3) 窗口大小:mode con clos=40 lines=6  // cols一行的半角位数,lines行数

(4) 弹窗信息:msg [username|sessionname|sessionid|*] 弹窗信息

 

7 子程序调用

7.1 开启窗口并执行文件

(1) 开启新窗口:start [窗口标题] [xx.bat]  // 开新窗口,可指定标题,可指定新窗口执行文件

(2) 执行文件:start /b xx.bat  // 在当前窗口执行文件,与原程序异步执行

(3) 清屏:cls 

7.2 调用外部程序 

(1) 调用外部程序:call 文件名.bat [参数1 ...参数9] // 最多传9个参数,子程序结束后继续执行

(2) 外部程序获取参数:%1~%9 // 只能识别%加1个数值,子程序不能pause结束,否则主程序不继续执行

7.3 调用内部程序 

(1) 同文件代码块调用: call :代码块名 [参数1 ...参数9] // 代码块修改变量影响外部的值,修改内部定义变量不影响外部数据

(2) 结束代码块:goto :eof  // 代码块程序终止,回到主程序继续执行 

 

7.4 返回值(errorlevel)

代码执行错误的返回值大于0,TODO未验证使用方式

(1) 判断成功:if errorlevel 0 (...) // 成功执行

(2) 判断成功:if %errorlevel% == 0 (...) // 成功执行

8 执行计划

本人windows10,at命令提示被弃用,应使用schtasks,具体可参照 schtasks /? 查看

9 其它命令

net [user] /?  // 本机命令

ipconfig // 显示ip信息

ping ip // 显示网络传输信息

netstart -an [ | find "信息" ] // 输出网络连接信息

shutdown  // 关闭计算机

mstsc // 远程桌面连接

tasklist // 任务列表

tasklist /s 远程ip /u 用户名 /p 密码   //远程任务列表

taskkill /im 任务.exe  // 关闭任务

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新AI创作系统ChatGPT网站运营源码、支持GPT-4-Turbo模型,图片对话识图理解,支持DALL-E3文生图

一、AI创作系统 SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01;本系统使用NestjsVueTypescript框架技术&#xff0c;持续集成AI能力到本系统。支持OpenAI DALL-E3文生图&#xff0c;…

技术面时,一定要掌握这3个关键点

前言 现在有这么多优秀的测试工程师&#xff0c;大家都知道技术面试是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察你的技术功底与基础理论知识。 如果你参加过一些大厂面试&#xff0c;肯定会遇到一些这样的问题&#xff1a; 1、看你项目都用到了…

HttpRunner原来还能这么用,大开眼界!!!

hook机制 Httprunner 框架中的 hook 机制相当于unittest框架中的 setup , teardown 函数&#xff0c;用来进行测试用例执行之前的环境初始化以及测试用例执行完毕之后的环境清理操作。 httprunner 中的 hooks 机制可以用在测试用例层级也可以用在测试步骤层级&#xff0c;其关键…

北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595(仿真方法验证)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 使用FPGA开发板验证的教程&#xff0c;请参考 北邮…

数据在内存中的存储练习题

数据在内存中的存储练习题 文章目录 数据在内存中的存储练习题1. 练习一2.练习二3. 练习三4. 练习四5. 练习五6. 练习六7. 总结 1. 练习一 #include <stdio.h>int main() {char a -1;signed b -1;unsigned char c -1;printf("a %d b %d c %d", a, b, c)…

MySQL InnoDB 引擎底层解析(二)

6.2.InnoDB 的表空间 表空间是一个抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个页的池…

华为云IoT与OpenHarmony深度协同,加速设备上鸿即上云【云驻共创】

本次专题论坛探讨了华为云IoT与Open Harmony的深度协同、边缘屏蔽硬件差异、实现智慧隧道全方位智能化管理&#xff0c;以及华为云与Open Harmony生态的合作。同时也介绍了华为云物联网卡平台、HTTP2协议以及华为物联网在交通领域的应用。 一&#xff0e;华为云IoT与Open Harm…

Interactive Visual Data Analysis

Words&Contents Home | Interactive Visual Data Analysis Book Outline 这本书对视觉、互动和分析方法进行了系统而全面的概述&#xff0c;作为数据可视化方面比较好的读物&#xff1b; 目录 Words&Contents Book Outline &#xff08;一&#xff09;Introduct…

Jina AI 的 8K 向量模型上线 AWS Marketplace,支持本地部署!

在当前多模态 AI 和大模型技术风头正劲的背景下&#xff0c;Jina AI 始终领跑于创新前沿&#xff0c;技术领先。2023 年 10 月 30 日&#xff0c;Jina AI 隆重推出 jina-embeddings-v2&#xff0c;这是全球首款支持 8192 输入长度的开源向量大模型&#xff0c;其性能媲美 OpenA…

【uni-app】uniapp中弹出输入框的示例

uni.showModal({title: 请输入企业名称,content: ,editable: true, //是否显示输入框placeholderText: 请输入企业名称, //输入框提示内容confirmText: 确认,cancelText: 取消,success: (res) > {if (res.confirm) {this.checkDesc.name res.content;// console.log(输入的…

vue3(二)-基础入门之列表循环、数组变动检测、filter模糊查询、事件修饰符

一、列表循环 of 和 in 都是一样的效果 html代码&#xff1a; <div id"app"><ul><li v-for"item of datalist">{{ item }}</li></ul><ul><li v-for"item in dataobj">{{ item }}</li></u…

Java游戏 王者荣耀

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…

关于elementui和ant design vue无法禁止浏览器自动填充问题

以and design vue 为例&#xff1a; 图标用来显隐账号密码 html&#xff1a; <a-form-model-item label"账号密码:" prop"password"><a-input v-if"passwordTab" ref"passwordInput" v-model"form.password" typ…

数据结构算法-贪心算法

引言 贪心&#xff1a;人只要有 “需求“ &#xff0c;都会有有点“贪“&#xff0c; 这种“贪“是一种选择&#xff0c;或者“”取舍“ RTS&#xff08;即时战略&#xff09;游戏&#xff1a; 帝国时代里 首先确保拥有足够的人口 足够的粮食&#xff0c;足够的战略资源 足够的…

MicroPython STM32F4 RTC功能使用介绍

MicroPython STM32F4 RTC功能使用介绍 &#x1f516;STM32和ESP32 RTC功能差不多&#xff0c;相关篇《MicroPython ESP32 RTC功能使用介绍》&#x1f4cc;固件刷可参考前面一篇《STM32刷Micropython固件参考指南》&#x1f33f; 相关篇《Micropython STM32F4入门点灯》&#x1…

Aapche Dubbo 不安全的 Java 反序列化 (CVE-2019-17564)

漏洞描述 Apache Dubbo 是一个高性能的、基于 Java 的开源 RPC 框架。 Apache Dubbo 支持不同的协议&#xff0c;它的 HTTP 协议处理程序是 Spring Framework 的 .org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter Spring Framework 的安全警告显示&am…

MySQL表连接

文章目录 MySQL内外连接1.内连接2.外连接&#xff08;1&#xff09;左外连接&#xff08;2)右外连接 3.简单案例 MySQL内外连接 1.内连接 内连接的SQL如下&#xff1a; SELECT ... FROM t1 INNER JOIN t2 ON 连接条件 [INNER JOIN t3 ON 连接条件] ... AND 其他条件;说明一下…

内测分发平台是否支持应用的微服务化部署

内测分发平台的微服务化部署支持是现代应用开发和部署的一个重要特性。首先我们得知道什么是微服务化部署都有哪些关键功能&#xff0c;如何实施微服务化的部署。下文以我自己理解总结了几点。 图片来源:news.gulufenfa.com 微服务是一种基于独立运行的小型服务来构建应用程序…

医学图像分割:U_Net 论文阅读

“U-Net: Convolutional Networks for Biomedical Image Segmentation” 是一篇由Olaf Ronneberger, Philipp Fischer, 和 Thomas Brox发表的论文&#xff0c;于2015年在MICCAI的医学图像计算和计算机辅助干预会议上提出。这篇论文介绍了一种新型的卷积神经网络架构——U-Net&a…

【浅尝C++】C++类的6大默认成员函数——构造、析构及拷贝构造函数

&#x1f388;归属专栏&#xff1a;浅尝C &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;好想摆烂&#xff0c;又好想学习~~ 文章前言&#xff1a;本篇文章简要介绍C类的构造函数、析构函数及拷贝构造函数&#xff0c;介绍每个小点时&#xf…