DOS(磁盘操作系统)是一个早期的基于命令行的操作系统,尽管现代操作系统已经发展为图形用户界面(GUI),但是了解和掌握一些基本的DOS命令仍然非常有用,尤其是在处理批处理脚本、网络管理或者在没有图形界面的情况下。

下面是一些主要的DOS命令和相应的实用案例:

  1. CD (Change Directory): 改变当前目录。

    • 实例:cd \foldername 切换到根目录下的 foldername 文件夹。

    • 实例:进入指定盘符的指定路径

      cd /d D:\LearningNote\DOS
    • 获取当前目录

      C:\Users\Cmy>cd
      C:\Users\Cmy
      C:\Users\Cmy>echo %cd%
      C:\Users\Cmy
  2. DIR (Directory): 显示当前目录的内容。

    • 实例:只显示文件名

      dir /b
  3. MD (Make Directory): 创建新的目录。

    • 实例:创建一个子目录

      md child
    • 实例:创建多个子目录

      md child child1 child2
    • 实例:创建嵌套目录结构

      md parent\child1\child2
    • 实例:创建带有空格的目录

      md "my folder"
  4. RD (Remove Directory): 删除指定的目录。

    • 实例:删除指定的目录

      rd newFolder
    • 实例:删除多个目录

      rd folder folder1 folder2
    • 实例:删除非空目录

      使用 /s 参数表示递归地删除目录及其所有子目录和文件;使用 /q 参数表示静默删除,不显示确认提示

      rd /s newFolder
      rd /s /q parent
  5. DEL (Delete): 删除指定的文件。

    • 实例:del filename.txt 删除名为 filename.txt 的文件。

    • 实例:删除特定类型的文件

      del *.txt
    • 实例:递归删除目录中的所有文件

      del /s parent\*
    • 实例:删除前确认

      del /p file_name
  6. TYPE: 显示指定文件的内容。

    • 实例:type file.txt 显示 file.txt 文件的内容。

    • 实例:将文件重新写入到其他文件

      type file.txt > file2.txt
    • 实例:将文件追加到其他文件

      type file.txt >> file.txt
    • 实例:通过管道符号|传递给其他命令

      type file.txt|findstr base
  7. 管道符:|在DOS(命令提示符)环境下,管道 (|) 符号用于将一个命令的输出传递给另一个命令作为输入。这种技术允许你创建复杂的命令链来处理文本数据

    • find

      #直接用法
      find "search_str" file.txt
      #配合管道符
      type file.txt|find "search_str"
    • findstr

      #直接用法
      findstr search_str file.txt
      type file.txt|findstr search_str
    • 链式用法

      dir | find "data.txt" | find "modified"
  8. COPY: 拷贝文件或目录。

    • 实例:copy file.txt newfile.txtfile.txt 复制为 newfile.txt

    • 合并多个文件

      copy 1.txt+2.txt result.txt
    • 跨盘符复制

      copy 1.txt E:\aaaa.txt
  9. REN (Rename) 或 RENAME: 重命名文件或目录。

    • 实例:ren oldname.txt newname.txtoldname.txt 重命名为 newname.txt
  10. ATTRIB: 修改文件或目录的属性。

    • 实例:attrib +h file.txtfile.txt 添加隐藏属性。
  11. PATH: 设置或显示当前路径环境变量。

    • 实例:path path1;path2 设置当前路径包含 path1path2
  12. ECHO: 打印文本到屏幕或重定向到文件。

    • 实例:echo Hello, World! > output.txt 将 "Hello, World!" 写入 output.txt可以用来创建文件
    • 实例: echo append >> output.txtj将"append"追加(另起一行)到output.txt
  13. SET:设置变量或者环境变量

    1. 设置变量和引用,注意,等号(=)两边不能有空格。

      @echo off
      set h=HelloWorld
      echo %h%
    2. 显示所有变量和显示特定变了

      #显示所有变量
      set
      #显示特定变量
      set JAVA_HOME
    3. set /a允许你执行简单的算术运算并将结果赋值给变量

      set /a sum=1+2
    4. set /p选项可以让用户交互式地输入值

      @echo off
      set /p var="please input your name:"
      echo hello %var% ! Welcome!
  14. exiterrorlevel

    exit命令用于退出当前的命令解释器或者关闭当前的命令窗口。

    # 立即退出命令行或批处理脚本
    exit
    # 退出并设置退出代码 ErrorLevel 如果在批处理脚本中使用,/b选项表示退出当前的批处理脚本,而不是整个命令解释器
    exit [/b] [exitCode]

    errorlevel 是一个系统变量,用于存储上一条命令执行后的退出代码或错误级别。通常,0 表示成功,非零值表示有错误或特定的失败条件。

    REM 设置errorlevel为1
    command1
    exit /b 1 REM 设置errorlevel为0(表示成功)
    command2
    exit /b 0
  15. IF: 条件判断语句,用于编写复杂的批处理脚本。

    实例:

    @echo off
    rem 关闭回显
    if exist file.txt (
    echo File exists.
    ) else (
    echo File not found.
    )
    • 等于(EQU) 和 ==等价 但是优先使用EQU

      if %var% EQU "value"(
      echo the variable is equals to the value;
      )
    • 不等于(NEQ)

      if 1 NEQ 1 (
      echo 1 is not equal to 1
      ) else (
      echo 1 is equal to 1
      )
    • 小于(LSS)

      if 2 LSS 1 (
      echo 2 is less than 1
      ) else (
      echo 1 is less than 2
      )
    • 小于或者等于(LEQ)

      if 1 LEQ 2 (
      echo 1 is less or equal to 2
      ) else (
      echo 2 is less or equal to 1
      )
    • 大于(GTR)

      if 1 GTR 2 (
      echo 1 is greater than 2
      ) else (
      echo 2 is greater than 1
      )
    • 大于或者等于(GEQ)

      if 1 GEQ 2 (
      echo 1 is greater or equal to 2
      ) else (
      echo 2 is greater or equal to 1
      )
    • NOT 取非 注意和!不等价

      @echo
      set var=true
      if NOT %var%==true echo the var is not true
      • NOT 和 !的辨析

        !符号在批处理脚本中有特殊用途,它通常与setlocal enableDelayedExpansion命令一起使用来实现延迟环境变量扩展。当使用!时,你是在引用一个延迟扩展变量,其值在运行时而不是定义时进行评估。例如:

        @echo off
        setlocal EnableDelayedExpansion
        set var=hello
        echo Before loop: !var!
        for /L %%i in (1,1,3) do (
        set var=world
        echo Inside loop: !var!
        )
        echo After loop: !var!

        在这个例子中,!var!用于访问延迟扩展变量var的值。

    • AND (使用 && 符号表示):

      if condition1 && condition2 command
    • OR(使用 || 符号表示):

      if condition1 || condition2 command

    FOR: 循环执行一系列命令。

    格式:FOR [参数] %%变量名 IN (相关文件或命令)   DO 执行的命令
      作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。
      注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
      关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f
    • 实例:这个循环会打印当前目录下所有 .txt 文件的内容。

      for %%i in (*.txt) do type %%i
    • 实例: (%var%)中的空格和英文逗号制表符视为分隔符

      @echo off
      set /p var="please input a var:"
      for %%i in (%var%) do (
      echo %%i
      )
    • 参数 /d参数只能显示当前目录下的目录名字,只会搜索指定目录下的目录,不会搜索再下一级的目录

      @echo off
      for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录
      for /d %%i in (???) do echo %%i --显示当前目录下名字只有1-3个字母的目录
    • 参数/r搜索指定路径及所有子目录中与set相符合的所有文件

      for /r c:\ %%i in (*.exe) do echo %%i --把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了
    • 参数/l

      ---
        格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]
        该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step
        for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5
        for /l %%i in (1,2,10) do @echo %%i --输出1,3,5,7,9
        for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20
    • 参数/f 主要用于处理文本文件或者命令的输出

      # delims=xxx 设置分隔符,默认分隔符是空格和制表符。你可以指定一个或多个字符作为分隔符,例如 delims=,; 表示使用逗号和分号作为分隔符。
      @echo off
      for /f "delims==" %%i in (file.txt) do (
      echo %%i
      )
      读取文件并打印每一行 # tokens=x,y,m-n:指定要提取的字段或范围。例如,tokens=1,2 表示提取第一和第二个字段,tokens=2* 表示提取第二个字段及之后的所有字段。
      @echo off
      for /f "tokens=2,3 delims=," %%i in (data.txt) do (
      echo %%i %%j
      )
      读取文件每行的第二三列,以,为分割符 # skip=n:跳过前n行不处理。
      @echo off
      for /f "skip=2 delims=" %%i in (data.txt) do (
      echo %%i
      ) # eol=xxx:指定行尾标记,当遇到这些字符时,认为该行结束。忽略(隐藏、屏蔽)开头字符是xxx的行。
      @echo off
      for /f "eol=C" %%i in (data.txt) do echo %%i # usebackq:允许使用引号 (") 或反引号 (``) 包围文件名或命令。
      @echo off
      FOR /F "usebackq" %%a IN (`dir /b`) DO echo %%a
      @echo off
      FOR /F "tokens=2,* delims=:" %%a IN ('ipconfig ^| findstr /R ",*IPv4,*"') DO echo IP-Address:%%a
      # 注意ipconfig ^|中的^是转义字符 |是管道符
  16. GOTO: 转移到批处理脚本中标签所定义的位置。

    goto命令用于跳转到脚本中的特定标签(label),然后从该标签处继续执行。

    • 实例:
      @echo off
      
      REM 第一部分
      :first_part
      echo This is the first part of the script.
      pause REM 使用goto命令跳转到第二部分
      goto second_part REM 这是永远不会被执行的代码,因为我们将跳转到second_part标签
      echo This code will never be executed. :second_part
      echo This is the second part of the script. set /p flag="input 1 to return fisrt_part"
      if flag equ 1(
      goto first_part
      )
      exit /b 0
  17. PAUSE: 暂停批处理脚本的执行,并显示提示信息。

    • 实例:pause 在执行完批处理脚本后暂停并等待用户按键。
  18. timeout:timeout命令用于暂停脚本的执行并等待指定的时间

    timeout [/t timeout] [/nobreak] [/quiet]
    /t timeout:指定等待的时间(以秒为单位)。例如,/t 10表示等待10秒。
    /nobreak:默认情况下,用户可以通过按下任意键来提前结束等待。使用/nobreak选项可以禁止这种行为,使得脚本必须等待指定的时间。
    timeout /t 10 /nobreak @echo off
    setlocal enabledelayedexpansion # 没1秒打印一次 打印10s
    set count=0
    :start
    echo Hello
    set /a count+=1
    if !count! equ 10 exit
    timeout /t 1 > nul
    goto start

dos-基础用法的更多相关文章

  1. DOS基础使用专题(强烈推荐)

    DOS基础使用专题(强烈推荐) 美丽的DOS时代 DOS是世界上使用人数最多的操作系统,包括上面的Win3.x/9x等GUI操作平台的用户.尽管许多人由于种种原因而使用了其它非DOS的操作系统或操作环 ...

  2. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  3. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  4. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  5. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  6. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  7. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  8. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  9. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  10. asyncio 基础用法

    asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...

随机推荐

  1. 从零开始配置 vim(8)——文件类型检测

    在上一章介绍自动命令的时候,我们提到可以使用 FileType来根据文件类型来触发事件,但是关于文件类型并没有深入的介绍,本篇我们来补充关于文件类型相关的内容,让大家更好的理解,看不懂也没关系,你只需 ...

  2. C++ Qt开发:运用QJSON模块解析数据

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJs ...

  3. Linux基础命令 [补档-2023-06-28]

    Linux基础命令 1-1.命令的基本格式 ​ Linux系统命令的通用格式为: ​ command [-options] [parameter] ​ 其中 ​ -command 命令本身 ​ -op ...

  4. P10009 [集训队互测 2022] 线段树 题解

    题目链接:P10009 [集训队互测 2022] 线段树 神仙分块题,先给一下出题人的神仙官解: 官解链接 前面还看得懂.后面是啥?这不是 ds 题咋和 dp.轮廓线扯上关系了.看了半天,还是这个启发 ...

  5. 如何计算DG环境下Redo传输所需的带宽?

    MOS有篇文章: How To Calculate The Required Network Bandwidth Transfer Of Redo In Data Guard Environments ...

  6. XD刷机中执行reclaimdisks.sh的作用

    之前刷机提到在使用OEDA进行一键部署前,需先在所有DB节点上运行reclaimdisks.sh,也提到观察会释放pvs/vgs/lvs相对应的剩余空间. 本文以一套X8环境为例,来看下具体的表现,以 ...

  7. [Ngbatis源码学习][SpringBoot] 由BeanFactoryPostProcessor想到

    由BeanFactoryPostProcessor想到 在看Ngbatis源码时看到了对BeanFactoryPostProcessor后置处理器的使用,对其的使用并不是很了解,在此做一些学习和总结. ...

  8. 《AI驱动下的开发者新生态》-2024长沙.NET技术社区活动-诚邀大家报名

    回顾 2019年初,在.NET中文社区及包括苏州.广州.深圳等地区社区等大力推动.在众多企业的大力支持下,长沙地区的开发者们发起成立了长沙.NET技术社区,并组织了<2019年长沙开发者技术大会 ...

  9. Mysql 8.0 Navicat连接Mysql报错Authentication plugin ‘caching_sha2_password‘ cannot be loaded

    1.终端登陆MySQL$ mysql -u root -ppassword #登入mysql 2.修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDEN ...

  10. NC15136 迷宫

    题目链接 题目 题目描述 这是一个关于二维迷宫的题目.我们要从迷宫的起点 'S' 走到终点 'E',每一步我们只能选择上下左右四个方向中的一个前进一格. 'W' 代表墙壁,是不能进入的位置,除了墙壁以 ...