CMD与DOS脚本编程【第二章】
预计更新
第一章. 简介和基础命令
1.1 介绍cmd/dos脚本语言的概念和基本语法
1.2 讲解常用的基础命令和参数,如echo、dir、cd等
第二章. 变量和运算符
2.1 讲解变量和常量的定义和使用方法
2.2 介绍不同类型的运算符和运算规则
第三章. 控制流程和条件语句
3.1 介绍if、else、for、while等控制语句的用法
3.2 讲解条件语句的语法和应用场景
第四章. 函数和参数传递
4.1 讲解如何定义和调用函数以及传递参数
4.2 介绍函数的作用域和递归调用
第五章. 文件操作
5.1 讲解如何创建、读取、写入和删除文件
5.2 介绍文件操作的常用命令和参数,如copy、del、type等
第六章. 环境变量和系统信息
6.1 介绍环境变量的概念和设置方法
6.2 讲解如何获取系统信息,如系统时间、用户名等
第七章. 网络通信和远程控制
7.1 介绍如何使用cmd/dos脚本语言进行网络通信
7.2 讲解如何使用远程控制命令,如telnet、net等
第八章. 错误处理和调试技巧
8.1 介绍常见的错误类型和处理方法
8.2 讲解如何使用调试工具和技巧
第九章. 脚本编写和调试实战
9.1 提供一些实际案例,让读者通过编写和调试脚本来加深理解和掌握技能
9.2 讲解如何测试和优化脚本性能
第十章. 其他高级主题和扩展
10.1 讲解其他高级主题,如正则表达式、批处理、交互式命令等
10.2 介绍如何扩展和定制cmd/dos脚本语言的功能和特性
第二章. 变量和运算符2.1 讲解变量和常量的定义和使用方法2.2 介绍不同类型的运算符和运算规则
讲解变量和常量的定义和使用方法
一、变量和常量的定义和使用
在CMD和DOS脚本语言编程中,变量和常量也是非常重要的概念。变量和常量的定义和使用方法与其他编程语言类似,下面我们来详细讲解。
- 变量的定义和使用
在CMD和DOS脚本语言编程中,变量的定义和使用方式与其他编程语言类似。变量的定义通常需要指定变量的名称和值,如下所示:
set variableName=value
其中,set表示设置变量的命令;variableName为变量的名称;value为变量的值。例如:
set num=10 //定义一个整数变量
set str=Hello World //定义一个字符串变量
set flag=true //定义一个布尔变量
在变量定义后,可以通过变量名称来访问变量的值,如下所示:
echo %num% //输出10
echo %str% //输出Hello World
echo %flag% //输出true
变量的值可以随时修改,例如:
set num=20 //修改num的值为20
echo %num% //输出20
- 常量的定义和使用
在CMD和DOS脚本语言编程中,常量的定义方式与变量类似,但是常量的值在定义后就不能再修改,可以使用setlocal命令定义常量,如下所示:
setlocal
set constantName=value
其中,setlocal表示在当前环境中定义常量;constantName为常量的名称;value为常量的值。例如:
setlocal
set PI=3.1415926 //定义一个π的常量
set NAME=John //定义一个名字的常量
在常量定义后,可以通过常量名称来访问常量的值,如下所示:
echo %PI% //输出3.1415926
echo %NAME% //输出John
试图修改常量的值会导致编译错误。
二、常用命令的使用方法
在CMD和DOS脚本语言中,echo、dir、cd等命令也是非常常见的,下面我们来详细讲解它们的使用方法。
- echo命令
echo命令用于在命令行中输出文本。其基本语法为:
echo [text]
其中,[text]表示要输出的文本。例如:
echo Hello World
将输出文本Hello World。
echo命令还支持一些特殊字符,用于控制输出的格式,如下所示:
echo. //输出一个空行
echo off //关闭命令行回显
echo on //打开命令行回显
echo %username% //输出当前用户名
echo %date% //输出当前日期
echo %time% //输出当前时间
- dir命令
dir命令用于列出当前目录下的文件和子目录。其基本语法为:
dir [path]
其中,[path]表示要列出的目录路径。例如:
dir C:\Windows
将列出C:\Windows目录下的所有文件和子目录。
dir命令还支持一些参数,用于控制列出的结果,如下所示:
dir /w //以宽度格式列出结果
dir /p //分页显示结果
dir /s //递归列出子目录下的文件
dir /a //列出所有文件和目录,包括隐藏文件和系统文件
dir /b //以简短格式列出结果
- cd命令
cd命令用于更改当前工作目录。其基本语法为:
cd [path]
其中,[path]表示要更改的目录路径。例如:
cd C:\Windows\System32
将更改当前工作目录为C:\Windows\System32。
cd命令还支持一些特殊符号,用于更方便地切换目录,如下所示:
cd .. //回到上一级目录
cd \ //回到根目录
cd %userprofile% //切换到当前用户的主目录
- set命令
set命令用于设置或显示环境变量。其基本语法为:
set [variable=value]
其中,[variable=value]表示要设置的环境变量名称和值。例如:
set PATH=C:\Windows\System32;%PATH%
将设置PATH环境变量的值为C:\Windows\System32,并将原来的PATH值添加在后面。
set命令还可以用于显示当前环境变量的值,例如:
set PATH
将显示当前PATH环境变量的值。
- if命令
if命令根据条件执行不同的命令。其基本语法为:
if condition command
其中,condition为一个条件表达式,如果满足该条件,则执行command命令。例如:
if %num%==10 echo num等于10
如果num变量的值为10,则输出num等于10。
if命令还支持一些比较运算符和逻辑运算符,用于构建复杂的条件表达式,如下所示:
if %num% equ 10 echo num等于10
if %num% neq 10 echo num不等于10
if %num% lss 10 echo num小于10
if %num% leq 10 echo num小于等于10
if %num% gtr 10 echo num大于10
if %num% geq 10 echo num大于等于10
if %errorlevel% equ 0 echo 命令执行成功
if exist C:\Windows\System32\calc.exe echo 计算器程序存在
if not exist C:\Windows\System32\notepad.exe echo 记事本程序不存在
if %num1% equ 10 if %num2% equ 20 echo num1等于10且num2等于20
if %num1% equ 10 if not %num2% equ 20 echo num1等于10且num2不等于20
以上就是CMD和DOS脚本语言编程中常用的命令的使用方法,希望对大家有所帮助。
介绍不同类型的运算符和运算规则
一、不同类型的运算符
在CMD和DOS脚本语言编程中,不同类型的运算符可以帮助我们进行各种不同的运算操作。下面我们来介绍一些常见的运算符。
- 算术运算符
算术运算符用于进行数学运算,如加减乘除等。常见的算术运算符如下所示:
+ //加法
- //减法
* //乘法
/ //除法
% //取余
例如,我们可以使用以下命令计算两个数的和:
set num1=10
set num2=20
set /a result=%num1%+%num2%
echo %result%
输出结果为30。
- 比较运算符
比较运算符用于比较两个值的大小关系,返回一个布尔值(真或假)。常见的比较运算符如下所示:
equ //等于
neq //不等于
lss //小于
leq //小于等于
gtr //大于
geq //大于等于
例如,我们可以使用以下命令比较两个数的大小关系:
set num1=10
set num2=20
if %num1% lss %num2% (echo num1小于num2
) else (echo num1大于等于num2
)
输出结果为num1小于num2。
- 逻辑运算符
逻辑运算符用于将多个比较表达式组合起来,形成复合条件。常见的逻辑运算符如下所示:
and //与
or //或
not //非
例如,我们可以使用以下命令将两个比较表达式组合起来:
set num1=10
set num2=20
if %num1% lss %num2% and %num1% equ 10 (echo num1小于num2且num1等于10
)
输出结果为num1小于num2且num1等于10。
- 位运算符
位运算符用于对二进制数进行操作,如按位与、按位或等。常见的位运算符如下所示:
& //按位与
| //按位或
^ //按位异或
<< //左移
>> //右移
例如,我们可以使用以下命令对两个数进行按位与操作:
set num1=10
set num2=6
set /a result=%num1% & %num2%
echo %result%
输出结果为2。
二、运算规则
在CMD和DOS脚本语言编程中,不同类型的运算符有着不同的运算规则。下面我们来介绍一些常见的运算规则。
- 算术运算规则
算术运算符遵循数学运算规则,如乘除优先于加减,括号优先于乘除等。例如,以下命令将先计算括号中的乘法,再计算加法:
set num1=10
set num2=20
set /a result=(%num1%+2)*%num2%
echo %result%
输出结果为660。
- 比较运算规则
比较运算符返回一个布尔值(真或假),可以用于条件语句的判断。例如,以下命令使用比较运算符判断两个数的大小关系:
set num1=10
set num2=20
if %num1% lss %num2% (echo num1小于num2
) else (echo num1大于等于num2
)
输出结果为num1小于num2。
- 逻辑运算规则
逻辑运算符用于将多个比较表达式组合起来,形成复合条件。例如,以下命令将两个比较表达式组合起来:
set num1=10
set num2=20
if %num1% lss %num2% and %num1% equ 10 (echo num1小于num2且num1等于10
)
输出结果为num1小于num2且num1等于10。
- 位运算规则
位运算符用于对二进制数进行操作,如按位与、按位或等。例如,以下命令对两个数进行按位与操作:
set num1=10
set num2=6
set /a result=%num1% & %num2%
echo %result%
输出结果为2。
- 字符串运算规则
在CMD和DOS脚本语言中,字符串可以使用双引号或单引号括起来。字符串运算符用于对字符串进行操作,如连接、长度等。例如,以下命令将两个字符串连接起来:
set str1=hello
set str2=world
set result=%str1% %str2%
echo %result%
输出结果为hello world。
- 数组运算规则
在CMD和DOS脚本语言编程中,可以使用数组来存储一组相同类型的数据。数组的下标从0开始,可以使用%array[index]%的方式访问数组元素。例如,以下命令使用数组存储一组数,并计算它们的和:
set array[0]=10
set array[1]=20
set array[2]=30
set /a result=%array[0]%+%array[1]%+%array[2]%
echo %result%
输出结果为60。
三、常用命令详解
除了上述的运算符外,CMD和DOS脚本语言编程中还有很多常用命令可以帮助我们完成各种不同的任务。下面我们来详细介绍一些常用命令的使用方法。
- echo命令
echo命令用于输出文本或变量的值。例如,以下命令输出一个字符串:
echo hello world
输出结果为hello world。
我们还可以使用echo命令输出变量的值,例如:
set name=Tom
echo My name is %name%
输出结果为My name is Tom。
- dir命令
dir命令用于列出当前目录下的文件和子目录。例如,以下命令列出当前目录下的所有文件和子目录:
dir
输出结果类似于:
驱动器 D 中的卷没有标签。卷的序列号是 0000-0000D:\test 的目录2019/08/12 15:37 <DIR> .
2019/08/12 15:37 <DIR> ..
2019/08/12 15:37 0 test.txt1 个文件 0 字节2 个目录 69,766,918,144 可用字节
我们还可以使用dir命令加上参数来进行不同的操作,如列出文件大小、文件类型等。
- cd命令
cd命令用于切换当前目录。例如,以下命令将当前目录切换到D盘的test目录下:
cd D:\test
我们还可以使用cd命令加上…参数来返回上一级目录。
- type命令
type命令用于显示文本文件的内容。例如,以下命令显示一个文本文件的内容:
type test.txt
其中test.txt为文本文件的文件名。
- set命令
set命令用于设置环境变量或命令行变量。例如,以下命令设置一个环境变量:
set PATH=C:\test;%PATH%
其中C:\test为要添加的路径。
我们还可以使用set命令设置命令行变量,例如:
set /a num1=10
set /a num2=20
set /a result=%num1%+%num2%
echo % result%
输出结果为30。
- if命令
if命令用于条件判断。例如,以下命令根据一个变量的值判断输出不同的内容:
set num=10
if %num% equ 10 (echo num等于10
) else (echo num不等于10
)
输出结果为num等于10。
我们还可以使用if命令进行更加复杂的条件判断,如判断文件是否存在、判断字符串是否相等等。
- for命令
for命令用于循环处理一组数据。例如,以下命令循环输出1到10之间的数字:
for /l %%i in (1,1,10) do (echo %%i
)
其中/l表示循环的类型为数字,%%i表示循环变量。
我们还可以使用for命令循环处理目录下的文件,或者处理数组中的数据等。
四、总结
CMD和DOS脚本语言虽然在现代计算机中已经不常见,但是它们仍然是具有实用价值的编程语言。本文详细介绍了CMD和DOS脚本语言编程的基础知识和常用命令,希望读者可以通过本文了解并掌握这些技能,以便在需要时能够快速解决问题。
相关文章:
CMD与DOS脚本编程【第二章】
预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...

面试字节,过关斩将直接干到 3 面,结果被吊打了?
人人都有大厂梦,对于软件测试员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让…...

OpenCV在iOS端的集成及Mat和UIImage互相转化(附源码)
OpenCV是一个非常强大的图形处理框架,可以运行在Linux、Windows、Android和Mac OS操作系统上,在自动驾驶、智能家居、人脸识别、图片处理等方面提供了非常丰富且功能强大的api,在图片处理方便,基本上可以满足对图片处理的所有需求…...

5月跳槽会有风险,不跳也会有?
今天讲讲跳槽。 说实话跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。 其次,我们离职和跳槽,其中的原因很大一部分是目前薪资不符合预期。 那…...

【小白版】最简单的 goland package 教程包括自定义包的使用
一、Hello World 最简单的教程,就需要从最简单的事情开始说起: mkdir myappcd myappgo mod init myapp // myapp是主项目名 这行命令将生成一个go.mod文件,这个文件会记录所有的包的依赖关系,一个空的go.mod只有项目名称和go版本…...

IMX6ULL的I2C驱动详细分析
IMX6ULL的I2C驱动详细分析 文章目录 IMX6ULL的I2C驱动详细分析i2c_imx_driver 的平台驱动注册i2c_imx_probe注册函数i2c_imx_algoI2C算法结构体i2c_imx_start开始I2Ci2c_imx_stop停止I2Ci2c_imx_isr中断服务函数i2c_imx_dma_writeDMA 进行写操作的 I2C 传输2c_imx_dma_readi2c_…...
日志迁移到 logback
目标 本次迁移的目标就是用 slf4jlogback 的日志框架来取代目前的 slf4jlog4j 如何迁移 基于 slf4j 的无痛迁移 项目本身是采用的 slf4jlog4j 日志架构,所以迁移到 logback 基本无痛 修改依赖 原本是 slf4jlog4,依赖如下 <dependency><gro…...

开源字节 CRM 系统
开源字节CRM是一款SaaS模式的客户关系管理软件,基于钉钉平台进行研发,以客户管理为核心,包含客户管理、销售全流程管理,合同订单、工单管理、移动审批、数据分析六大模块。 旨在助力企业销售全流程精细化、数字化管理,…...

七、Spring Cloud Alibaba-Sentinel
一、引言 1、了解服务可用性问题,服务挂掉原因 缓存击穿、单点故障、流量激增、线程池爆满、CPU飙升、DB超时、缺乏容错机制或保护机制、负载不均、服务雪崩、异常没处理等。 服务雪崩效应:因服务提供者的不可用导致服务调用者的不可用,并将…...

机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化
什么是knn算法? KNN算法是一种基于实例的机器学习算法,其全称为K-最近邻算法(K-Nearest Neighbors Algorithm)。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是:对于一个新的输入样本,通过…...

【MySQL】MySQL基础知识详解
文章目录 1. MySQL概述1.1 数据库相关概念1.1.1 数据库、数据库管理系统与SQL1.1.2 关系型数据库与数据模型 1.2 MySQL数据库1.2.1 MySQL的安装与配置1.2.2 MySQL服务的启动与停止1.2.3 连接MySQL服务端 2. SQL2.1 SQL简介2.2 DDL2.2.1 数据库操作2.2.2 表操作2.2.2.1 创建表2.…...

RabbitMQ日常使用小结
一、使用场景 削峰、解耦、异步。 基于AMQP(高级消息队列协议)协议来统一数据交互,通过channel(网络信道)传递信息。erlang语言开发,并发量12000,支持持久化,稳定性好,集群不支持动态扩展。 RabbitMQ的基本概念 二、组成及工作流…...

博物馆文物馆藏环境空气质量无线监控系统方案
博物馆文物馆藏环境空气质量无线监控系统方案 博物馆无线环境测控系统 博物馆恒温恒湿消毒净化系统 现代化博物馆空气质量一体化3D可视化管控平台 博物馆温湿度在线监控系统 博物馆光照在线监控系统 博物馆二氧化碳在线监控系统 博物馆在线监控系统 博物馆紫外线在线监控…...

测试理论----Bug的严重程度(Severity)和优先级(Priority)的分类
【原文链接】测试理论----Bug的严重程度(Severity)和优先级(Priority)的分类 一、Bug的严重程度(Severity) Bug的Severity(严重程度)指的是一个Bug对软件系统功能影响的程度&#…...

斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名
由 Stanford Blockchain Accelerator、Zebec Protocol、 Nautilus Chain、Rootz Lab 共同主办的黑客松活动,现已接受优秀项目提交参赛申请。 在加密行业发展早期,密码极客们就始终在对区块链世界基础设施,在发展方向的无限可能性进行探索。而…...

00后卷王,把我们这些老油条卷的辞职信都写好了........
现在的小年轻真的卷得过分了。 前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪18K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家…...

JavaEE(系列12) -- 常见锁策略
目录 1. 乐观锁和悲观锁 2. 轻量级锁与重量级锁 3. 自旋锁和挂起等待锁 4. 互斥锁和读写锁 5. 可重入锁与不可重入锁 6. 死锁 6.1 死锁的必要条件 6.2 如何避免死锁 7. 公平锁和非公平锁 8. Synchronized原理及加锁过程 8.1 Synchronized 小结 8.2 加锁工作过程 8.2.1 偏向锁…...

前端nginx接口跨域
前提:vue项目本地接口通过proxy都可使用,但是项目部署在服务器上后发现所有接口出现503如下状况 简而言之:页面部署在域名为https://aa.bb.cc.com/vehicle/#/下,但是我接口需访问的是https:// azz.qqv.com/permission/company/gro…...

【国产虚拟仪器】基于 ZYNQ 的电能质量系统高速数据采集系统设计
随着电网中非线性负荷用户的不断增加 , 电能质量问题日益严重 。 高精度数据采集系统能够为电能质 量分析提供准确的数据支持 , 是解决电能质量问题的关键依据 。 通过对比现有高速采集系统的设计方案 , 主 控电路多以 ARM 微控制器搭配…...

Java前缀和算法
一.什么是前缀和算法 通俗来讲,前缀和算法就是使用一个新数组来储存原数组中前n-1个元素的和(如果新数组的当前元素的下标为n,计算当前元素的值为原数组中从0到n-1下标数组元素的和),可能这样讲起来有点抽象࿰…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...

DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...