区分规则很简单,在cmd窗口中用help命令能打印出来的命令都是cmd内部命令,没包括在里面的都是外部命令。
- D:\>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 信息。
-
- 有关工具的详细信息,请参阅联机帮助中的命令行参考。
内部命令的实现代码,全放在cmd.exe可执行程序中,而外部命令的实现代码独立地放在了其他可执行程序中;比如说外部命令where对应system32文件夹下的where.exe文件,而外部命令shutdown也对应system32文件夹下的shutdown.exe文件,而外部命令wget、python则对应用户安装时放置的路径中的wget.exe、python.exe文件。
外部命令可以拓展,而内部命令只有那些(变动不大),属于绝对的系统内置。
有些外部命令属于系统内置的,升级或更新系统后就有,比如where、shutdown命令。
有些外部命令需要你去下载和配置,比如python、pip、wget外部命令。
Cmd窗口可以通过在运行窗口中执行命令【cmd】来启动。

Cmd的内部命令不能直接在运行窗口中执行,比如执行【pause】会报错找不到可执行程序文件。

但是可以间接执行,在运行窗口中执行命令【cmd /c pause】来实现;但这实质上还是在cmd窗口中执行,因为这是将后面的pause传入cmd才执行成功的。

执行成功的效果。

有些CMD的外部命令既可以在cmd窗口中执行也可以运行窗口中执行,效果其实是一样的,都会根据当Path路径变量的顺序进行搜索。
示例1:Python命令
在cmd中执行的效果如下

直接在运行窗口中执行的效果如下:

示例2:diskpart命令
在cmd中执行的效果如下

在运行窗口中执行的效果如下

示例3:msconfig命令
在cmd中执行的效果如下

直接在运行窗口中执行的效果如下

但是,有些CMD外部命令虽然能在运行窗口中执行,但不会起到相应的效果;比如说where命令、shutdown命令,如果不在cmd窗口中执行,它会立即闪退。
因此,建议如果本来没打开cmd窗口、只需要简单地用到某一个程序(并且这个程序不像where、shutdown那样需要依托cmd窗口实现)时,直接用运行窗口执行命令的方式打开这个程序即可,没必要先打开cmd窗口再执行命令。
啥叫可执行程序文件?后缀为exe、bat、ink(快捷方式)等时,就是可执行程序文件。
有些人把电脑应用程序的快捷方式存到一个文件夹里,然后这个文件夹的路径存入Path路径变量中,这样就可以利用Win+R快速启动应用程序了。
相比之下,文本文档文件(txt、rtf、md、json、doc、excel、ppt等)、多媒体文件(jpg、mp3、mp4等),都是不能直接用不带文件的后缀名运行命令启动的(但是可以用带后缀名的文件名启动)。
比如,路径【D:\Program Files\python\Python38】已经加入了Path路径变量中,其中有一个tool.txt文件

我在运行中执行命令【tool】无法找到文件。

但是执行命令【tool.txt】可以找到文件。
正常打开。

因此,CMD窗口中的外部命令和运行窗口中执行命令,搜索文件的范围基本一致(但是CMD窗口还会搜索当前目录),要么都找得到要么都找不到(除了CMD的当前目录)。