DOS编程基础总结

文章目录

    • 一、概念
      • 1.1 DOS命令---windows支持的命令行指令
      • 1.2 BAT脚本---DOS批处理脚本
      • 1.3 DOS命令帮助---help / help command
    • 二、基础语法
      • 2.1 变量(读/写/查看/关键环境变量)
      • 2.2 if条件语句
      • 2.3 for循环语句
      • 2.4 注释--- 行首:: 或者 行首REM(可回显内容)
    • 三、DOS基础指令
      • 3.1 输出命令 与 指令回显控制echo
      • 3.2 工作流程相关 pause暂停 / goto跳转 / exit 结束
      • 3.3 调佣其他批处理命令call(本窗口执行)/ start (新开窗口执行)
      • 3.4 日期命令date 时间命令time 与 延时手段
      • 3.5 历史输入命令查看 doskey /history (类似shell的history),命令位置查看where
      • 3.6 【高阶用法】多个命令组合使用 &、&&、||,与pipe管道符|
    • 四、文件相关
      • 4.1 文件 创建(利用type和重定向>)/ 删除del / 移动move / 改名ren / 复制copy
      • 4.2 文件 列表dir(类似shell的ls)/ 属性查看与修改CACLS
      • 4.3 文件内容查看type
      • 4.4 文件与重定向<、>和>>(和shell用法类似)
      • 4.5 目录相关 创建md / 删除rd / 切换cd / 输出子目录tree
    • 五、文本&字符串相关
      • 5.1 ^转义字符(屏蔽特殊符号<、>、&功能)
      • 5.2 文本内容搜索find
      • 5.3 文本替换 与 截取

一、概念

1.1 DOS命令—windows支持的命令行指令

DOS:Disk Operating System 是早期微软的操作系统命令行界面,用于控制计算机执行任务命令,是在系统启动时加载的操作系统。Windows是在DOS基础上发展而来的,引入了更多图形化界面和功能,但同时DOS命令仍然在windows得以支持。

1.2 BAT脚本—DOS批处理脚本

.bat或者.cmd为结尾的文件,即DOS批处理脚本文件。运行在windows命令行环境。将一系DOS列命令按一定顺序集合。

1.3 DOS命令帮助—help / help command

在命令行直接输入help可以查看DOS本身支持的命令,如果用help command可以获得command命令的详细帮助;

二、基础语法

以下只讲解基础用法,很多命令存在复杂的扩展指令用法,可以用help command详细查看

2.1 变量(读/写/查看/关键环境变量)

新增&&改写变量 SET [variable=[string]]
显示当前全部变量SET(不带参数)
使用变量%variable%,如打印当前时间echo %DATE%

set testVar=hahaha
echo %testVar%:: 输出hahaha
echo %DATE%:: 输出如2023/11/13 周一

常用变量如 DATE日期,TIME时间,CD当前目录,ERRORLEVEL函数返回值

2.2 if条件语句

IF [NOT] 表达式 number command [ELSE command]
常用表达式举例:
1)ERRORLEVEL number // 最后运行的程序返回值 等于或者大于指定number
2)EXIST filename // 指定文件存在
3)条件比较表达式 string1 cmp-op string2,
—cmp-op可选:EQU等于 NEQ不等 LSS小于 LEQ小于等于 GTR大于 GEQ大于等于

set aVar=123
set bVar=124
if %aVar% LSS %bVar% (echo %aVar% less than %bVar%
) else (echo %aVar% bigger nor equal to %bVar%
)
:: 输出123 less than 124

2.3 for循环语句

FOR %variable IN (set) DO command [command-parameters]
注意:在批处理命令中使用for命令 注意变量请使用%%variable,并区分大小写;

for %%i in (1 2 3 4 5) do echo %%i
:: 输出 1(换行) 2(换行) 3 (换行)4 (换行)5(换行)

for存在大量扩展用法,详见help for
包括/L迭代器控制(指定起始 步长 结束),/D目录匹配(非递归子目录),/R 目录文件匹配(递归), /F 读取文件内容逐行操作匹配

2.4 注释— 行首:: 或者 行首REM(可回显内容)

有两种注释方式:1)行首加 ::,本行将被注释并且内容不会回显;2)行首加REM,本行将被注释,并且内容执行会回显示出来。

:: 这是一样注释,执行脚本时,不被打印出来。
REM this is a comand no use line, it will print to command windows

三、DOS基础指令

3.1 输出命令 与 指令回显控制echo

ECHO [message] // 输出字符串
ECHO [ON | OFF] // 打开或关闭回显(脚本执行默认命令回显是打开,即每条指令执行前都会显示到命令行界面 )

3.2 工作流程相关 pause暂停 / goto跳转 / exit 结束

PAUSE // 暂停批处理执行程序,并在屏幕上显示 请按任意键继续. . .
GOTO label // 跳转命令,批处理文件中 可以用:xxx 来创建一个标签,然后用goto跳转过去;

goto end
:endecho this is the end
:: 输出this is the end

EXIT [/B] [exitCode] // 退出此bat文件,返回exitCode,默认关闭DOS窗口,如果带了/B就不关闭窗口

3.3 调佣其他批处理命令call(本窗口执行)/ start (新开窗口执行)

CALL [drive:][path]filename [batch-parameters] // 在本窗口调用新批处理文件处理,带入参数batch-parameters
START [drive:][path]filename [batch-parameters] // 创建一个新窗口处理

3.4 日期命令date 时间命令time 与 延时手段

DATE /t // 显示当前日期,直接输入DATE是进行日期设置
TIME /t // 显示当前时间
DOS命令中没有类似shell的sleep命令,可以用ping命令实现类似sleep的效果(如下 ping默认每秒一个数据包,6个数据包就是5秒)
ping -n 6 127.0.0.1 >nul

3.5 历史输入命令查看 doskey /history (类似shell的history),命令位置查看where

doskey /history 可以直接查看历史命令;
where 命令/文件 // 在PATH或者当前目录查找

3.6 【高阶用法】多个命令组合使用 &、&&、||,与pipe管道符|

多个命令组合:
cmd1 & cmd2 [& cmd3 … ] // 顺序执行各条命令
cmd1 && cmd2 [&& cmd3 … ] // 顺序执行各条命令,如果前一个命令失败,后续命令不执行
cmd1 || cmd2 [ || cmd3 … ] // 顺序执行各条命令,如果前一个命令失败,才执行后续命令
管道命令:
cmd1 | cmd2 [ | cmd3 … ] // 前一条命令的输出结果 作为下一条命令输入参数,与shell命令类似

四、文件相关

4.1 文件 创建(利用type和重定向>)/ 删除del / 移动move / 改名ren / 复制copy

DOS中没有shell中类似touch命令串口文件,可以利用type和重定向>创建一个新空文件。

type nul >./tmp.txt
:: type命令显示nul(特殊设备 用于丢弃输入输出)导入到创建的tmp.txt中。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names // 删除文件
MOVE [/Y | /-Y] [drive:][path]filename1[,…] destination // 移动文件
REN [drive:][path]filename1 filename2 // 重命名
COPY source destination // 复制文件

4.2 文件 列表dir(类似shell的ls)/ 属性查看与修改CACLS

DIR [drive:][path][filename] // 查看文件
CACLS filename // 修改权限等

4.3 文件内容查看type

TYPE [drive:][path]filename // 显示文本内容

4.4 文件与重定向<、>和>>(和shell用法类似)

输出重定向> (若文件不存在就创建一个)
追加内容 >> (内容补充到文件末尾)
输入重定向< ,从文件中读取命令作为参数输入给命令
将一个句柄输出写入到另一个句柄输入中 >&
将一个句柄输入读取到另一个句柄输出 <&

4.5 目录相关 创建md / 删除rd / 切换cd / 输出子目录tree

MD [drive:][path] // 建立文件夹
RD [drive:][path] // 删除文件夹
CD [drive:][path] // 切换当前目录到制定文件夹
TREE [drive:][path] [/F] [/A] // 输入子目录

五、文本&字符串相关

5.1 ^转义字符(屏蔽特殊符号<、>、&功能)

对于特殊符号<、>、&,可以前面添加^来把它们作为普通符号使用

5.2 文本内容搜索find

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[ …]] // 在文件中搜索字符串string

5.3 文本替换 与 截取

字符替换:%PATH:str1=str2%,将PATH变量中str1替换为str2.
字符截取:%VAR:~[m [, n] ] %,截取VAR指定偏移内容,m为起始偏移 缺省为0,n为长度 缺省为偏移开始的全部内容长度;

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

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

相关文章

odoo16前端框架源码阅读——boot.js

odoo16前端框架源码阅读——boot.js 从名字就能看出来&#xff0c;这个文件是一个启动文件。 odoo前端将所有的js打包成了两个文件&#xff0c;一个是common.js,另一个是backend.js, 而common.js 是最先加载的 在common.js打包的js文件中最先加载的是下面的文件&#xff0c;看…

【华为OD题库-007】代表团坐车-Java

题目 某组织举行会议&#xff0c;来了多个代表团同时到达&#xff0c;接待处只有一辆汽车&#xff0c;可以同时接待多个代表团&#xff0c;为了提高车辆利用率&#xff0c;请帮接待员计算可以坐满车的接待方案&#xff0c;输出方案数量。 约束: 1.一个团只能上一辆车&#xff0…

监控和数据采集软件架构和详细设计

介绍 监控和数据采集软件通过提供实时监控、数据收集和分析功能&#xff0c;在各个行业中发挥着至关重要的作用。这些软件应用程序可帮助企业收集有价值的见解、优化流程并做出明智的决策。在本文中&#xff0c;我们将探讨监测和数据采集软件的软件架构、编程技术和详细设计规范…

【STM32 CAN】STM32G47x 单片机FDCAN作为普通CAN外设使用教程

STM32G47x 单片机FDCAN作为普通CAN外设使用教程 控制器局域网总线&#xff08;CAN&#xff0c;Controller Area Network&#xff09;是一种用于实时应用的串行通讯协议总线&#xff0c;它可以使用双绞线来传输信号&#xff0c;是世界上应用最广泛的现场总线之一。CAN协议用于汽…

拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)

拓扑排序软件设计 前言1. 需求分析2. 可行性分析2.1 简介2.2 技术可行性分析2.2.1 技术实现方案2.2.2 开发人员技能要求2.2.3 可行性 2.3 操作可行性分析2.4 结论 3. 项目报告3.1 修订历史记录3.2 软硬件环境3.3 需求分析3.4 详细设计3.4.1 类设计3.4.2 核心流程描述3.4.3 核心…

Spring Cloud LoadBalancer基础知识

LoadBalancer 概念常见的负载均衡策略使用随机选择的负载均衡策略创建随机选择负载均衡器配置 Nacos 权重负载均衡器创建 Nacos 负载均衡器配置 自定义负载均衡器(根据IP哈希策略选择)创建自定义负载均衡器封装自定义负载均衡器配置 缓存 概念 LoadBalancer(负载均衡器)是一种…

2023年数维杯国际大学生数学建模挑战赛

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 cs数模团队在数维杯前为大家提供了许多资料的内容呀&#xff0…

Linux 指令心法(十八)`crontab` 定期执行程序

文章目录 Crontab作用Crontab命令的主要特点和使用场景crontab命令应用方法crontab命令可以解决哪些问题crontab命令使用时注意事项 Crontab作用 Crontab是一个用于定期执行程序的命令&#xff0c;常见于Unix和类Unix的操作系统中。它允许用户在固定的时间或间隔内执行特定的任…

Redis应用之二分布式锁2

一、前言 前一篇 Redis应用之二分布式锁 我们介绍了使用SETNX来实现分布式锁&#xff0c;并且还遗留了一个Bug&#xff0c;今天我们对代码进行优化&#xff0c;然后介绍一下Redisson以及数据库的乐观锁悲观锁怎么用。 二、SetNX分布式锁优化后代码 RedisService.java Inven…

基于ssm+vue协同过滤算法的电影推荐系统

基于ssmvue协同过滤算法的电影推荐系统 摘要 电影推荐系统在信息技术发展的背景下日益成为研究的焦点&#xff0c;本研究基于SSM&#xff08;Spring SpringMVC MyBatis&#xff09;框架与Vue.js技术&#xff0c;以协同过滤算法为核心&#xff0c;旨在构建一种高效、准确的电影…

redis监听key失效

前言 ​ 使用redis进行大数据量信息存储时&#xff0c;如存储百万级别设备/通道信息&#xff0c;如果我们想获取设备/通道是否失效&#xff0c;常规的方法是定时获取&#xff0c;但是这样对于应用来说太消耗性能。 ​ redis提供了一种key事件监听的机制&#xff0c;应用可以监…

JVM在线分析-解决问题的工具一(jinfo,jmap,jstack)

1. jinfo (base) PS C:\Users\zishi\Desktop> jinfo Usage:jinfo <option> <pid>(to connect to a running process)where <option> is one of:-flag <name> to print the value of the named VM flag #输出对应名称的参数-flag [|-]<n…

C语言--1,5,10人民币若干,现在需要18元,一共有多少种?

今天小编给大家分享一下穷举法的一道典型例题 一.题目描述 1,5,10人民币若干,现在需要18元,一共有多少种? 二.思路分析 总共有18块钱&#xff0c;设1元有x张&#xff0c;5元有y张&#xff0c;10元有z张&#xff0c;则有表达式&#xff1a;x5y10z18&#xff0c;穷举法最重要的…

【LeetCode】67. 二进制求和

67. 二进制求和 难度&#xff1a;简单 题目 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例 1&#xff1a; 输入:a "11", b "1" 输出&#xff1a;"100"示例 2&#xff1a; 输入&#xff1a;a "…

Java事务详解

一、事务的理解&#xff1a; 1、事务的特性&#xff1a; 1) 原子性&#xff08;atomicity&#xff09;&#xff1a;事务是数据库的逻辑工作单位&#xff0c;而且是必须是原子工作单位&#xff0c;对于其数据修改&#xff0c;要么全部执行&#xff0c;要么全部不执行。 2) 一致性…

大数据之LibrA数据库系统告警处理(ALM-12033 慢盘故障)

告警解释 系统每一秒执行一次iostat命令&#xff0c;监控磁盘I/O的系统指标&#xff0c;如果在60s内&#xff0c;svctm大于100ms的周期数大于30次则认为磁盘有问题&#xff0c;产生该告警。 更换磁盘后&#xff0c;告警自动恢复。 告警属性 告警ID 告警级别 可自动清除 1…

vue,react虚拟dom

Virtual DOM 前言 在传统的Web开发中&#xff0c;直接操作真实的DOM通常是一个昂贵且低效的操作。为了解决这个问题&#xff0c;Virtual DOM&#xff08;虚拟DOM&#xff09;被引入为一个中间层&#xff0c;允许开发者在内存中进行操作&#xff0c;从而避免频繁且不必要的真实D…

377. 组合总和 Ⅳ

给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3], target 4 输出&#xff1a;7 解释&#…

什么是代理IP池?真实测评IP代理商的IP池是否真实?

代理池充当多个代理服务器的存储库&#xff0c;提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务&#xff0c;而无需担心被检测或阻止的风险。代理池为各种在线活动&#xff08;例如网页抓取、安全浏览等&#xff09;提高后勤保障。 读完…

【C语言 | 预处理】C语言预处理详解(一) —— #define、#under、#if、#else、#elif、#endif、#include、#error

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…