windows的bat文件(学习笔记)

news2024/11/27 4:20:03

简介

通过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.coloradmin.cn/o/1254814.html

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

相关文章

【软件测试】“我“做了一年的功能点点点测试,感觉在浪费时间...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 发现人们对测试非…

4/5G语音实现方案

今天又是学习充实的一天&#xff0c;今天我们来学习4G和5G语音实现方案的介绍&#xff0c;VOLITE通信流程是怎么样子的&#xff0c;和之前学的TCP协议有什么联系吗&#xff1f;今天我们换个角度来学习通信的流程~ 目录 2G/3G的电话和上网 4G语音实现方案 4G语音的三种方式 …

“BMP转PNG一键转换,批量处理图片,迈入高效图片管理新时代“

你是否曾经为了转换图片格式而烦恼&#xff1f;是否曾经因为一张一张地手动转换而感到无奈&#xff1f;现在&#xff0c;我们的全新工具将为你解决这些问题&#xff0c;开启高效图片管理新时代&#xff01; 首先&#xff0c;我们进入首助编辑高手主页面&#xff0c;会看到有多种…

1、nmap常用命令

文章目录 1. 主机存活探测2. 常见端口扫描、服务版本探测、服务器版本识别3. 全端口&#xff08;TCP/UDP&#xff09;扫描4. 最详细的端口扫描5. 三种TCP扫描方式&#xff08;1&#xff09;TCP connect 扫描&#xff08;2&#xff09;TCP SYN扫描&#xff08;3&#xff09;TCP …

Python自动化测试学习路线【进阶必看】

软件自动化测试的学习步骤 大概步骤如下&#xff1a; 1. 做好手工测试&#xff08;了解各种测试的知识&#xff09;-> 2. 学习编程语言-> 3. 学习Web基础&#xff08;HTML,HTTP,CSS,DOM,Javascript&#xff09;或者 学习Winform -> 4. 学习自动化测试工具 ->5.…

老师组织课外活动的好处有哪些

亲爱的小伙伴们&#xff0c;不知道你们有没有注意到&#xff0c;老师除了在课堂上教学之外&#xff0c;还会在课外组织各种各样的活动呢&#xff1f;这些活动不仅好玩&#xff0c;而且对我们有很多好处哦&#xff01;今天我就来给大家分享一下老师组织课外活动的好处吧&#xf…

目录树自动生成器 golang+fyne

go tree 代码实现请看 gitee 仓库链接 有很多生成目录树的工具&#xff0c;比如windows自带的tree命令&#xff0c;nodejs的treer&#xff0c;tree-cli等等。这些工具都很成熟、很好用&#xff0c;有较完善的功能。 但是&#xff0c;这些工具全部是命令式的&#xff0c;如果…

Java中wait()方法在synchronized方法中调用的奥秘

作为一名Java程序员&#xff0c;我们深知synchronized关键字和wait()方法在多线程编程中的重要性。 在本文中&#xff0c;我们将探讨为什么wait()方法需要在synchronized方法中调用&#xff0c;以及它们是如何协同工作的。 首先&#xff0c;让我们了解一下synchronized关键字和…

嵌入式硬件电路·电平

目录 1. 电平的概念 1.1 高电平 1.2 低电平 2. 电平的使用场景 2.1 高电平使能 2.2 低电平使能 2.3 失能 1. 电平的概念 电平是指电信号电压的大小或高低状态。在数字电子学中&#xff0c;电平有两种状态&#xff0c;高电平和低电平&#xff0c;用来表示二进制中…

代码随想录算法训练营第四十六天|139.单词拆分、背包问题总结

LeetCode 139. 单词拆分 题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 这道题使用完全背包来实现&#xff0c;我们首先考虑字符串是否可以由字符串列表组成&#xff0c;因此dp数组大小为n 1 &#xff0c;其意义是&#xff0c;在n个位置时是否能…

前缀和+哈希表——525. 连续数组

文章目录 ⛏1. 题目&#x1f5e1;2. 算法原理⚔解法一&#xff1a;暴力枚举⚔解法二&#xff1a;前缀和哈希表 ⚒3. 代码实现 ⛏1. 题目 题目链接&#xff1a;525. 连续数组 - 力扣&#xff08;LeetCode&#xff09; 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最…

超全整理,银行测试-银行项目贷款业务详细,一篇概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 银行测试&#xf…

cuda magma 构建 使用cmake构建的步骤记录

这不是群论代数软件&#xff0c;而是cuda 矩阵计算软件 1. 生成其他精度的源代码 1.1 复制编辑 make.inc cp make.inc-examples/make.inc.openblas ./make.inc 并修改其中的定义&#xff1a; OPENBLASDIR ? /opt/OpenBLAS 这需要实现安装openblas到此处。文件夹解构&…

Linux 网络通信

(一)套接字Socket概念 Socket 中文意思是“插座”&#xff0c;在 Linux 环境下&#xff0c;用于表示进程 x 间网络通信的特殊文件 类型。本质为内核借助缓冲区形成的伪文件。 既然是文件&#xff0c;那么理所当然的&#xff0c;我们可以使用文件描述符引用套接字。Linux 系统…

Royal TSX v6.0.1

Royal TSX是一款基于插件的软件&#xff0c;适用于Windows系统&#xff0c;可以用于远程连接和管理服务器。它支持多种连接类型&#xff0c;如RDP、VNC、基于SSH连接的终端&#xff0c;SFTP/FTP/SCP或基于Web的连接管理。 在安装Royal TSX后&#xff0c;需要进行一些基础配置&…

【新手解答2】深入探索 C 语言:一些常见概念的解析

C语言的相关问题解答 写在最前面问题1变量名是否有可能与变量重名&#xff1f;变量名和变量的关系变量名与变量是否会"重名"举例说明结论 变量则是一个地址不变&#xff0c;值时刻在变的“具体数字”变量的地址和值变量名与数据类型具体化示例结论 问题2关于你给我的…

11.8事务

一.Spring实现事务的两种方式 1.通过代码的方式手动实现事务. 2.通过注解的方式实现声明式事务. 二. 1.mysql事务 2. 手动实现事务 3.注解实现事务 使用注解Transactional,可以写在类上或方法上,如果异常,就自动回滚,正常则自动提交. 注意: 如果在代码中添加了try,catch捕…

408—电子笔记分享

一、笔记下载 链接&#xff1a;https://pan.baidu.com/s/1bFz8IX6EkFMWTfY9ozvVpg?pwddeng 提取码&#xff1a;deng b站视频&#xff1a;408-计算机网络-笔记分享_哔哩哔哩_bilibili 包含了408四门科目&#xff08;数据结构、操作系统、计算机组成原理、计算机网络&#xff09…

灭火器二维码巡检卡制作教程

每个消防器材生成独立二维码&#xff0c;取代传统纸质巡检卡&#xff0c;微信扫码巡检&#xff0c;巡检记录汇总后台&#xff0c;随时登录后台查看导出数据&#xff0c;管理人员绑定凡尔码小程序即可随时了解消防巡检完成情况。 生成灭火器巡检码流程图&#xff1a; 1、开通后…

【智能算法】基于黄金正弦和混沌映射思想的改进减法优化器算法

减法优化器&#xff08;Subtraction-Average-Based Optimizer&#xff0c;SABO&#xff09;是2023年刚出的智能优化算法。目前知网中文期刊基本搜不到&#xff0c;并且可以遇见未来一年文章也很少。SABO算法原理简单&#xff0c;算上初始化粒子&#xff0c;总共不超过6个公式。…