当前位置:   article > 正文

bat & cmd 命令知识点整理(待更新)_bat cmd

bat cmd

bat & cmd 命令知识点整理(待更新)

参考

零、基础概念

  • 【问】bat和cmd区别,参考cmd指令,bat脚本【完美解析】
    Note

    • 共同点

      • 本质上没有区别(DOS命令行和CMD命令行都是用Windows终端命令打开),都是简单的文本编码方式,都可以用记事本创建、编辑和查看。

      • 两者所用的命令行代码也是共用的,只是 cmd文件中允许使用的命令要比bat文件多cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制。

      • 从它们的文件描述中也可以看出以上的区别: cmd文件的描述是 windows NT桌面操作系统)命令脚本bat文件的描述是微软的MS-DOS磁盘操作系统) 批处理文件(不要和计算机 主板内ROM芯片上的程序BIOS 弄混了)。

    • 区别

      • cmdWin32命令,只能在32位系统中的命令行窗口中使用,仅仅是基于windows环境下的假DOS。(cmd中不能正常执行echo %~sdp0,但是运行bat批处理程序就可以,参考CMD获取当前目录路径

      • batDOS命令(批处理命令),在任何dos环境下都可以使用。

  • 【问】如何查看cmd命令
    Note

    • 如果找不到help命令,参考cmd显示help不是内部或外部命令,也不是可运行的程序或批处理文件

    • help命令如下:

      C:\Users\THINKPAD>help
      有关某个命令的详细信息,请键入 HELP 命令名
      ASSOC          显示或修改文件扩展名关联。
      ATTRIB         显示或更改文件属性。
      BREAK          设置或清除扩展式 CTRL+C 检查。
      BCDEDIT        设置启动数据库中的属性以控制启动加载。
      CACLS          显示或修改文件的访问控制列表(ACL)。
      CALL           从另一个批处理程序调用这一个。
      CD             显示当前目录的名称或将其更改。
      CHCP           显示或设置活动代码页数。
      CHDIR          显示当前目录的名称或将其更改。
      CHKDSK         检查磁盘并显示状态报告。
      CHKNTFS        显示或修改启动时间磁盘检查。
      CLS            清除屏幕。
      CMD            打开另一个 Windows 命令解释程序窗口。
      COLOR          设置默认控制台前景和背景颜色。
      COMP           比较两个或两套文件的内容。
      COMPACT        显示或更改 NTFS 分区上文件的压缩。
      CONVERT        将 FAT 卷转换成 NTFS。你不能转换
                     当前驱动器。
      COPY           将至少一个文件复制到另一个位置。
      DATE           显示或设置日期。
      DEL            删除至少一个文件。
      DIR            显示一个目录中的文件和子目录。
      DISKPART       显示或配置磁盘分区属性。
      DOSKEY         编辑命令行、撤回 Windows 命令并
                     创建宏。
      DRIVERQUERY    显示当前设备驱动程序状态和属性。
      ECHO           显示消息,或将命令回显打开或关闭。
      ENDLOCAL       结束批文件中环境更改的本地化。
      ERASE          删除一个或多个文件。
      EXIT           退出 CMD.EXE 程序(命令解释程序)。
      FC             比较两个文件或两个文件集并显示
                     它们之间的不同。
      FIND           在一个或多个文件中搜索一个文本字符串。
      FINDSTR        在多个文件中搜索字符串。
      FOR            为一组文件中的每个文件运行一个指定的命令。
      FORMAT         格式化磁盘,以便用于 Windows。
      FSUTIL         显示或配置文件系统属性。
      FTYPE          显示或修改在文件扩展名关联中使用的文件
                     类型。
      GOTO           将 Windows 命令解释程序定向到批处理程序
                     中某个带标签的行。
      GPRESULT       显示计算机或用户的组策略信息。
      GRAFTABL       使 Windows 在图形模式下显示扩展
                     字符集。
      HELP           提供 Windows 命令的帮助信息。
      ICACLS         显示、修改、备份或还原文件和
                     目录的 ACL。
      IF             在批处理程序中执行有条件的处理操作。
      LABEL          创建、更改或删除磁盘的卷标。
      MD             创建一个目录。
      MKDIR          创建一个目录。
      MKLINK         创建符号链接和硬链接
      MODE           配置系统设备。
      MORE           逐屏显示输出。
      MOVE           将一个或多个文件从一个目录移动到另一个
                     目录。
      OPENFILES      显示远程用户为了文件共享而打开的文件。
      PATH           为可执行文件显示或设置搜索路径。
      PAUSE          暂停批处理文件的处理并显示消息。
      POPD           还原通过 PUSHD 保存的当前目录的上一个
                     值。
      PRINT          打印一个文本文件。
      PROMPT         更改 Windows 命令提示。
      PUSHD          保存当前目录,然后对其进行更改。
      RD             删除目录。
      RECOVER        从损坏的或有缺陷的磁盘中恢复可读信息。
      REM            记录批处理文件或 CONFIG.SYS 中的注释(批注)。
      REN            重命名文件。
      RENAME         重命名文件。
      REPLACE        替换文件。
      RMDIR          删除目录。
      ROBOCOPY       复制文件和目录树的高级实用工具
      SET            显示、设置或删除 Windows 环境变量。
      SETLOCAL       开始本地化批处理文件中的环境更改。
      SC             显示或配置服务(后台进程)。
      SCHTASKS       安排在一台计算机上运行命令和程序。
      SHIFT          调整批处理文件中可替换参数的位置。
      SHUTDOWN       允许通过本地或远程方式正确关闭计算机。
      SORT           对输入排序。
      START          启动单独的窗口以运行指定的程序或命令。
      SUBST          将路径与驱动器号关联。
      SYSTEMINFO     显示计算机的特定属性和配置。
      TASKLIST       显示包括服务在内的所有当前运行的任务。
      TASKKILL       中止或停止正在运行的进程或应用程序。
      TIME           显示或设置系统时间。
      TITLE          设置 CMD.EXE 会话的窗口标题。
      TREE           以图形方式显示驱动程序或路径的目录
                     结构。
      TYPE           显示文本文件的内容。
      VER            显示 Windows 的版本。
      VERIFY         告诉 Windows 是否进行验证,以确保文件
                     正确写入磁盘。
      VOL            显示磁盘卷标和序列号。
      XCOPY          复制文件和目录树。
      WMIC           在交互式命令 shell 中显示 WMI 信息。
      
      有关工具的详细信息,请参阅联机帮助中的命令行参考。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
      • 65
      • 66
      • 67
      • 68
      • 69
      • 70
      • 71
      • 72
      • 73
      • 74
      • 75
      • 76
      • 77
      • 78
      • 79
      • 80
      • 81
      • 82
      • 83
      • 84
      • 85
      • 86
      • 87
      • 88
      • 89
      • 90
      • 91
      • 92
      • 93
      • 94
      • 95
      • 96
      • 97
      • 98
      • 99

一、bat 基础命令

参考bat 脚本基础知识、命令详解Windows批处理文件(.bat文件和.cmd文件)简单使用cmd指令,bat脚本【完美解析】

  • 【问】如何关闭打印文件内容?(@echo off设置命令内容不被打印)

    Note

    • @echo off:通常我们将这条指令写在我们批处理文件的第一行,因为有了这条指令之后,当我们在运行.bat的时候,就不会将文件里面的内容打印出来了,如果没有这句话,会先去将文件里面的内容打印在屏幕上

    • echo off:这条指令之后的内容不会被打印,但是这个指令会被打印

    • @某一条指令不想被打印,可以在前面加上@

  • 【问】如何设置变量值,打印变量和打印空行?(set设置值,echo打印值)

    Note

    • 设置变量值:注意等号左边不能有空格,等号右边的空格会被当做字符串的一部分;

      set a=1
      set wang=wang
      
      • 1
      • 2
    • 在控制台打印变量:需要在变量的前后带上%,然后使用echo命令回显变量;

      echo %a%
      echo %wang%
      
      • 1
      • 2
    • 打印空行:echo..必须紧跟在echo命令的后面),.也可以被,:;,或/等任一的符号代替,实现回车空行打印。

      echo.
      echo:
      echo;
      
      • 1
      • 2
      • 3
  • 【问】如何注释指令?(REM::

    Note

    • rem set a=1:注释指令打印在控制台上

    • ::set b=2:注释指令不会打印在控制台

  • 【问】如何暂停和继续执行命令?(pause暂停,方便检查控制台输出;按任意键可以继续执行该文件)

    Note

    • 希望在暂停时,不要在屏幕上显示“请按任意键以继续”,而是显示自己的语句

      echo 其他提示语 & pause > nul
      
      • 1
  • 【问】如何改变cmd窗口名字?(title 新标题名字_wang03

  • 【问】如何启动一个单独的窗口来运行指定的程序或命令?(start 程序名 程序参数

    Note

    • 查看start相关参数:

      > help start
      启动一个单独的窗口以运行指定的程序或命令。
      
      START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
            [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
            [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
            [command/program] [parameters]
      
          "title"     在窗口标题栏中显示的标题。
          path        启动目录。
          B           启动应用程序,但不创建新窗口。
                      应用程序已忽略 ^C 处理。除非应用程序
                      启用 ^C 处理,否则 ^Break 是唯一可以中断
                      该应用程序的方式。
          I           新的环境将是传递
                      给 cmd.exe 的原始环境,而不是当前环境。
          MIN         以最小化方式启动窗口。
          MAX         以最大化方式启动窗口。
          SEPARATE    在单独的内存空间中启动 16 位 Windows 程序。
          SHARED      在共享内存空间中启动 16 位 Windows 程序。
          LOW         在 IDLE 优先级类中启动应用程序。
          NORMAL      在 NORMAL 优先级类中启动应用程序。
          HIGH        在 HIGH 优先级类中启动应用程序。
          REALTIME    在 REALTIME 优先级类中启动应用程序。
          ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。
          BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。
          NODE        将首选非一致性内存结构(NUMA)节点指定为
                      十进制整数。
          AFFINITY    将处理器关联掩码指定为十六进制数字。
      
      注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 选项。
      
      通过指定 /NODE,可按照利用 NUMA 系统中的内存区域的方式
      创建进程。例如,可以创建两个完全
      通过共享内存互相通信的进程以共享相同的首选 NUMA 节点,
      从而最大限度地减少内存延迟。只要有可能,
      它们就会分配来自相同 NUMA 节点的
      内存,并且会在指定节点之外的处理器上自由运行。
      
          start /NODE 1 application1.exe
          start /NODE 1 application2.exe
      
      这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器
      上运行。在以下示例中,application1 在
      节点的两个低位处理器上运行,而 application2
      在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑处理器。请注意,节点号可更改为该计算机的任何有效节点号,
      而无需更改关联掩码。
      
          start /NODE 1 /AFFINITY 0x3 application1.exe
          启动 /NODE 1 /AFFINITY 0xc application2.exe
      
      如果命令扩展被启用,通过命令行或 START 命令的外部命令
      调用会如下改变:
      
      将文件名作为命令键入,非可执行文件可以通过文件关联调用。
          (例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。
          关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和
           FTYPE 命令。
      
      执行的应用程序是 32 位 GUI 应用程序时,CMD.EXE 不等应用
          程序终止就返回命令提示符。如果在命令脚本内执行,该新行为
          则不会发生。
      
      如果执行的命令行的第一个符号是不带扩展名或路径修饰符的
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
    • 常用的start命令为:start 程序名 程序参数用来调用批处理文件的同级目录下的程序。

      start iexplore http:\www.baidu.com \使用IE浏览器打开百度
      start chrome http:\www.baidu.com \使用chrome浏览器打开百度
      start wps \打开wps文档
      start wps hello.doc \使用wps打开hello.doc文档
      
      • 1
      • 2
      • 3
      • 4
  • 【问】如何在某一批处理程序中调用另外一个batch文件?(call c:\code\temp.bat

    Note

    • main.bat

      echo my name is main.bat
      call temp.bat
      pause
      
      • 1
      • 2
      • 3
    • temp.bat

      echo my name is temp.bat
      
      • 1
    • call main.bat

      D:\programSoftware\Java\java1.8\test>call main.bat
      
      D:\programSoftware\Java\java1.8\test>echo my name is main.bat
      my name is main.bat
      
      D:\programSoftware\Java\java1.8\test>call temp.bat
      
      D:\programSoftware\Java\java1.8\test>echo my name is temp.bat
      my name is temp.bat
      
      D:\programSoftware\Java\java1.8\test>pause
      请按任意键继续. . .
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

二、bat 常见变量

参考cmd指令,bat脚本【完美解析】.bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别CMD获取当前目录路径

三、bat常见字符(含运算符)

标识符含义
+命令文件连接符
*, ?文件通配符
“”字符串界定符
^转义符,其后面的特殊字符按原样输出
|命令管道符
>>文件重定向符
@命令行回显屏蔽符
/参数开关引导符
:批处理标签引导符
%批处理变量引导符
  • 组合命令&
    用法: 第一条命令 & 第二条命令 [& 第三条命令…]
    同时执行多条命令,而不管命令是否执行成功

  • 逻辑与&&
    用法: 第一条命令 && 第二条命令 [&& 第三条命令…]
    同时执行多条命令,当碰到执行出错的命令将不执行后面的命令,如果一直没有出错则一直执行完所以命令

  • 逻辑或||
    用法: 第一条命令 || 第二条命令 [|| 第三条命令…]
    同时执行多条命令,当碰到执行正确的命令将不执行后面的命令,如果一直没有出现正确执行的命令则一直执行完所以命令。

  • 管道命令|
    用法: 第一条命令 | 第二条命令 [| 第三条命令…]
    将第一条命令的结果作为第二条命令的参数来使用

  • 输出重定向命令> , >>
    将一条命令或某个程序输出结果重定向到特定文件中。> 与 >> 的区别在于:
    > 会清除原有文件中的内容后写入指定文件,
    >> 只会追加内容到指定文件中,而不会改变其中的内容。

  • <, >&, <&

    • <从文件中而不是键盘中读入命令输入

    • >& :将一个句柄的输出写入到另一个句柄的输入中

    • <&:从一个句柄读入输入并将其写入到另一个句柄输出中。

  • set [[/a [expression]] [/p [variable=]] string]

  • (,) 分组

  • +,-,*,/,% 算法

  • <<, >> 逻辑移位

  • &, |, ^ 位运算

四、cmd文件夹管理

五、cmd文件管理

六、cmd网络命令

七、cmd系统管理

八、脚本案例

  • 配置jdk环境变量

    参考win10系统,java环境变量脚本

    @echo off
    
    :: TODO:设置java环境变量
    color 02
    ::设置java的安装路径
    set input=
    set /p "input=请输入java的jdk路径(或回车默认路径为C:\Program Files\Java\jdk1.8.0_171):"
    if defined input (echo jdk已设置) else (set input=C:\Program Files\Java\jdk1.8.0_171)
    echo jdk路径为%input%
    set javaPath=%input%
    
    ::先删除JAVA_HOME
    wmic ENVIRONMENT where "name='JAVA_HOME'" delete
    
    ::先删除ClASS_PATH
    wmic ENVIRONMENT where "name='CLASSPATH'" delete
    
    ::创建JAVA_HOME并设值
    wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%javaPath%"
    
    ::创建CLASS_PATH并设值
    wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;"
    
    ::设置path
    wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%Path%;%%JAVA_HOME%%\jre\bin;%%JAVA_HOME%%\bin"
    
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    直接拿来用就行,注意要用管理员身份打开控制台,否则无法删除环境变量。最后通过java -version检测jdk环境变量是否配置成功。

  • 配置ffmpeg环境变量:

    @echo off
    
    :: TODO:设置ffmpeg环境变量
    color 02
    ::获取当前目录下的ffmpeg安装路径
    set ffmpeg_path=%~dp0
    ::echo %CD%
    echo %ffmpeg_path%
    
    ::设置path
    wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%Path%;%ffmpeg_path%bin"
    
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/863281
推荐阅读