精华内容
下载资源
问答
  • 前言 相信,很多小伙伴儿都在命令提示符中执行过 ipconfig 查看 ip 信息。我们还可以执行 ping ip 来 ping 对应的 ip 地址,执行 notepad 启动记事本,执行 explorer 启动文件管理器……但是,你好奇过背后的运作...

    6980581e8f2649bcc71337880ade1428.png

    前言

    相信,很多小伙伴儿都在命令提示符中执行过 ipconfig 查看 ip 信息。我们还可以执行 ping ipping 对应的 ip 地址,执行 notepad 启动记事本,执行 explorer 启动文件管理器……

    但是,你好奇过背后的运作机制吗?为什么输入几个简单的几个字母就能启动外部程序,本文试图通过一系列实验来挖掘其背后的运作机制。

    如果你对下面的问题有很明确的答案,本文不是为你准备的。如果有模糊,拿不准的地方,请耐心读完。如果觉得有用,请帮忙点个在看,拜谢。

    Five Questions

    1、在命令提示符里输入 notepad,是哪个位置的记事本被启动了?跟什么有关?

    2、如果同一个目录下有两个名为 bcn 的文件,一个是 bcn.com, 一个是 bcn.exe。在命令提示符中输入 bcn 会执行哪个?受什么影响?

    3、你知道怎么让自己的程序可以直接在命令提示符中被启动吗?像执行 ipconfig 那样。

    4、如果 PATH 环境变量是空的,会有什么问题?

    5、如果 PATHEXT 变量是空的,会有什么问题?

    PATH 实验

    实验1: 在命令提示符中输入一个不存在的命令(比如,bcn),使用 process monitor 观察整个过程。

    如我们所料,找不到。结果如下图:

    c77fa429a969fb1642263d64e3e09c18.png

    在观察 process monitor 捕获的日志之前,我们先查看当前命令提示符的当前路径( Current Directory)和 PATH 环境变量的值。

    4616083097e844de72bb6c3a058eaee4.png

    b3783558dde6ec6ef4d0cafd4db8dae1.png

    下图是使用 process monitor 捕获的事件,已过滤无关信息。

    082654f9c9563846ec61189372181658.png

    红色高亮部分是当前路径相关的事件,黄白相间的部分是 PATH 环境变量相关的事件。

    从此可以比较有信心的猜测:在命令提示符中输入命令会先在当前路径下查找,再到 PATH 环境变量指定的路径依次查找。

    实验2: 添加一个不存在的路径到 PATH 环境变量中,再次观察整个过程。

    :: 更新 PATH 环境变量
    set PATH=%PATH%d:not_existed_folder
    :: 执行命令
    bcn

    当前路径没变,而对应的 PATH 已经多了一条 d:not_existed_folder,如下图:

    1ec24c80bf9f7dc58db6a5f517cb2c26.png

    下图是使用 process monitor 捕获的相关事件(已过滤无关事件)。跟上面的实验对比,发现只多了黄色高亮部分。

    c54c553ec022298074362a294a03b9d0.png

    注意对比上图中黄色和红色部分。红色部分对应的路径是存在的,所以有三条记录。黄色部分对应的路径是不存在的,只有一条记录。可以双击某条记录,查看对应的调用栈。相信查看过调用栈后,你会和我一样,对 Operation 这一列有一个新的认识。

    3e677db41b55e110fab88f5154213710.png

    实验3:bcn.exe 放到当前路径( C:UsersbcnDesktop)下,执行 bcn

    ee156872df7272c25676d190382b57ab.png

    从上图可知,启动的是 C:UsersbcnDesktopbcn.exe,因为在当前路径下就找到了对应的程序,所以并没有到 PATH 环境变量指示的路径中查找。

    实验4: 删除 C:UsersbcnDesktopbcn.exe,把 bcn.exe 放到 PATH 环境变量中的 c:windows 下,再次执行 bcn

    8d7c97e4d5cebd2866a2771714560bb8.png

    从上图可知,启动的是 C:Windowsbcn.exe,在当前路径下没找到,然后依次到 PATH 环境变量指示的路径中查找,在c:windows 下找到了对应的程序。

    实验5: 清空 PATH 环境变量,在命令提示符中输入 ipconfig,看看是否能正常运行。

    3b7d435e6faca8891a342d5e9aebed58.png

    结论:

    通过以上几个实验,我们知道了在命令提示符中执行一个命令时的查找顺序是:当前路径,PATH 环境变量中指定的路径(按出现顺序进行查找)。

    PATHEXT 实验

    相信有细心的小伙伴儿发现了,在上面的 实验3实验4 中,会先查找 bcn.COM,没找到才继续查找的 bcn.exe。为什么是这种行为呢?跟什么有关呢?我们看下 PATHEXT环境变量的值,如下图:

    40fe8e32beed09d2edad415a32b9044c.png

    我们发现 .COM 出现在 .EXE 之前,是不是这个原因呢?让我们做实验来验证。

    实验6: 观察 PATHEXT 是否会影响查找结果。

    调整 PATHEXT 的值为 .BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.EXE;.COM,如果查找了前面的几个后缀,而没查找 .COM,说明 PATHEXT 会影响查找结果。

    set PATHEXT=.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.EXE;.COM
    bcn
    

    process monitor 捕获的事件验证了我们的猜测。截图:

    a6de86722a957e070318e782df68bb6a.png

    实验7: 观察 PATHEXT 时的行为。

    清空 PATHEXT,再执行 bcn

    set PATHEXT=
    bcn
    

    process monitor 捕获相关事件如下图:

    f5fe783a876a533af96b87bb27fb7fd1.png

    有点意外,原本以为会执行失败。看来如果 PATHEXT 是空,会使用默认的 PATHEXT,默认的 PATHEXT 是什么呢?

    实验8: 观察默认的PATHEXT

    重命名 bcn.exebcn.xyz(很重要),然后执行下面的命令:

    set PATHEXT=
    bcn
    

    process monitor 捕获相关事件如下图:

    e2d1f717b2aa7705fcce283c39db973a.png

    在我的系统(win10 1903)中,当 PATHEXT 为空时,默认搜索的扩展名是 .COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC;。其它系统可能有不同的行为,感兴趣的小伙伴儿请自行实验。

    实验9: 当前目录下同时存在 bcn.combcn.exe 会执行哪个?(通过上面的实验,结论很明显了)

    分别执行下面两组命令,观察对比结果:

    set PATHEXT=.COM;.EXE
    bcn
    
    set PATHEXT=.EXE;.COM
    bcn
    

    procmon 捕获的两次查找过程对比图,黄色是设置 .COM 优先的结果,红色是设置 .EXE 优先的结果。

    72d7930e1856af8a1b5225a9b7b8c3dc.png

    从结果可以进一步确定,优先查找 PATHEXT 中先出现的后缀名。

    实验10: 观察直接执行 bcn.exe 观察查找过程。

    73f3b6adc399082c598b86138eb217ac.png

    如果命令中带后缀,那么查找的时候不会依赖 PATHEXT ,会直接执行给定的命令。

    实验代码

    如果你也想自己动手实验。可以新建一个工程,并粘贴下面的代码,编译生成测试程序。

    #include "stdafx.h"
    #include <windows.h>
    #include <stdio.h>
    #include "stdlib.h"
    
    int main(int argc, char* argv[])
    {
     char exe_path[MAX_PATH] = { 0 };
     ::GetModuleFileNameA(NULL, exe_path, MAX_PATH);
     printf("%sn", exe_path);
     system("pause");
     return 0;
    }
    

    总结

    相信通过上面一系列的实验,我们对命令提示符如何执行一个外部命令有了深刻的认识。对 PATHPATHEXT 这两个环境变量的作用,简单总结如下:

    1. PATH 决定了外部命令所在位置的查找顺序,PATHEXT 决定了外部命令的扩展名查找顺序。
    2. 当我们在命令提示符中输入一个命令时,会先到当前路径(Current Directory)中查找,如果找不到,才会到环境变量 PATH 指示的路径中查找。
    3. 如果输入的命令不带后缀,那么会根据 PATHEXT 指示的后缀顺序依次拼接成完整名称再查找。
    4. 如果输入的命令带后缀,不会根据 PATHEXT 中的后缀查找。
    5. 如果我们想让自己的程序也能直接通过命令提示符启动,我们可以把程序所在路径添加到 PATH 环境变量中,位置越靠前,越有可能被执行。
    6. 如果 PATHEXT 为空,那么会使用默认的 PATHEXT,我机器上的值是 .COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC;
    展开全文
  • DOS命令提示符

    2020-11-09 21:30:54
    DOS命令 Windows的DOS命令,其实是Windows系统的cmd命令,它是由原来的MS-DOS系统保留下来的。 MS-DOS称为微软磁盘操作系统,最开始从西雅图公司(蒂姆-帕森特)买过来 MS-DOS系统一般是需要使用...cmd:命令提示符 calc:

    DOS命令

    Windows的DOS命令,其实是Windows系统的cmd命令,它是由原来的MS-DOS系统保留下来的。

    MS-DOS称为微软磁盘操作系统,最开始从西雅图公司(蒂姆-帕森特)买过来

    MS-DOS系统一般是需要使用命令行界面接收用户指令

    DOS命令执行一般是需要借助于控制台CMD控制台执行 , 我们可以通过win+R键来调出运行窗口

    常用的DOS命令

    mspaint:是打开画图工具的快捷键
    notepad:记事本
    taskmgr:任务管理器
    regedit:注册表
    cmd:命令提示符
    calc:计算器
    control:控制面板
    devmgmt.msc:设备管理器
    diskmgmt.msc:磁盘管理

    常见的DOS命令

    1.切换目录 cd
    切换到上一级目录 cd…
    进入到某一个目录中 cd 路径

    路径:
    绝对路径:是以盘符为开头的 c:/xxx
    相对路径:是以当前目录为参照的路径
    2.盘符切换 输入对应的盘符即可.eg:D;
    3.查看某个目录下所包含的所有目录和文件 dir
    4.编译某个Java源文件 javac需要编译的Java源文件
    5.可以使用上下方向键 查找之前的操作指令记录
    6.清屏 cls

    7.在D根目录创建一个文件夹,这个目录名字叫做指令操作
    mkdir 需要创建的目录
    md 需要创建的目录

    8.删除指定的目录==rd(remove directory)==需要删除的目录 如rd 111

    9.重命名某个文件或者文件夹 ren某个文件或者文件夹的路径 新名字

    10.移动某个文件或者目录到指定的位置 move

    11.复制某个文件copy 源文件 目标路径

    12.剪切某个文件 move 源文件 目标路径

    13.tab补充


    练习

    1.关机,重启电脑

    关机:shutdown /f /s /t 0 (关机)
    at 14:30 Shutdown -s(下午两点半关机)
    重启:shutdown /f /r /t 0(重启)
    /s 关闭计算机
    /r 关闭并重启动计算机
    /f 强制正在运行的应用程序关闭而不事先警告用户
    /t xxx 设置关闭前的超时为 xxx 秒。
    倒计时过程输入shutdown /a可以取消关机或重启

    2.查看网络配置

    ipconfig

    3.查看当前的网络连接情况:如查看开启了哪些端口

    netstat -n 查看端口的网络连接情况

    4.查看当前开启了哪些服务,停止某个服务,启动某个服务

    在命令行中输入:

    ​ net start 查看所有已启动的服务

    ​ net start 启动服务

    ​ net stop 停止服务

    5.新建一个目录

    在某个盘符的目录下 md 目录名

    6.创建一个文件

    echo … > A.txt 重定向输出,此时创建文本文件A.txt;
    echo … >>A.txt 向A.txt文件中追加信息…;

    7.对目录或者文件重命名

    ren 某个文件或者文件夹的路径 新名字 ren D:\A\1.txt r

    8.删除一个目录

    rd 目录名

    9.删除一个文件

    del 文件名

    10.复制一个文件到指定目录中

    copy 源文件 目标路径

    11.剪切一个文件到指定的目录中

    remove 源文件 目标路径

    12.切换盘符

    直接输入对应的盘符即可

    13.切换目录

    切换目录 cd
    切换到上一级目录 cd…
    进入到某一个目录中 cd 路径

    14.切换到根目录中

    cd\

    15.会打开电脑中的某个自定义安装的应用 如 notepad++、chrome、qq 、weChat

    先cd 目标的路径 进入目标的盘符下,再输入应用的名称打开应用

    16.会打开电脑中常用的应用。如:记事本、画图、任务管理器、注册表编辑器、设备管理器、控制面板

    mspaint:是打开画图工具的快捷键
    notepad:记事本
    taskmgr:任务管理器
    regedit:注册表
    cmd:命令提示符
    calc:计算器
    control:控制面板
    devmgmt.msc:设备管理器
    diskmgmt.msc:磁盘管理

    展开全文
  • CMD命令提示符

    2019-09-28 14:39:50
    cmd------CMD命令提示符 MSConfig------系统配置实用程序 regedit------注册表编辑器 notepad------打开记事本 calc------启动计算器 mstsc------远程桌面连接 services.msc------系统服务 gpedit.msc------组策略 ...

    cmd------CMD命令提示符

    MSConfig------系统配置实用程序

    regedit------注册表编辑器

    notepad------打开记事本

    calc------启动计算器

    mstsc------远程桌面连接

    services.msc------系统服务

    gpedit.msc------组策略

    shutdown------60秒倒计时关机命令

    Nslookup-------IP地址侦测器

    explorer------打开资源管理器

    chkdsk.exe------Chkdsk磁盘检查

    dcomcnfg------打开系统组件服务

    devmgmt.msc------设备管理器

    cleanmgr------垃圾整理

    compmgmt.msc------计算机管理

    secpol.msc------本地安全策略

    netstat -an------(TC)命令检查接口

    taskmgr------任务管理器

    mmc------打开控制台

    logoff------注销命令

    lusrmgr.msc------本机用户和组

    dvdplay------DVD播放器

    diskmgmt.msc------磁盘管理实用程序

    dxdiag------检查DirectX信息

    perfmon.msc------计算机性能检测程序

    winver------检测Windows版本

    write------写字板

    wiaacmgr------扫描仪和照相机向导

    mspaint------画图板

    magnify------放大镜实用程序

    utilman------辅助工具管理器

    osk------打开屏幕键盘

    odbcad32------ODBC数据源管理器

    Sndvol32或Sndvol------音量控制程序

    sfc.exe------系统文件检查器

    sfc /scannow------Windows文件保护

    eventvwr------事件查看器

    cliconfg------SQL Server客户端网络实用程序

    certmgr.msc------证书管理实用程序

    使用 Win键+其他键组合:

    Win键:打开“开始”菜单

    Win键+E:打开我的电脑

    Win键+R:打开运行对话框

    Win键+D:显示桌面

    Win键+M:最小化所有窗口

    Win键+X:Windows移动中心,调节音量,屏幕亮度

    Win键+Home:除了正在选择的窗口,其他窗口最小化

    Win键+PAUSE BREAK:打开“系统属性”对话框

    Win键+【+/-】:打开Windows放大、缩小功能

    Win键+Pause:显示系统属性对话框

    Win键+TAB:Aero三维效果切换程序

    Win键+数字键:让位于任务栏上的程序打开(数字为序号)

    Win键+P:选择一个演示文稿显示模式,可以用来关闭屏幕

    Win键+L:锁定计算机,需要输入密码或者选择其他用户

    Win键+T:多次按可以在多个程序间顺序切换

    Win键+F:计算机搜索,可以搜索计算机里面所有文件

    Win键+【←/→】:在屏幕左/右半个屏幕最大化

    Win键+【↑/↓】:最大化/最小化

    展开全文
  • 可是当我用命令提示符进行编译的时候出现了这样的问题: 这就让人很是郁闷了。。。我再三检查代码段,发现代码是完全正确的!那到底是哪里出问题了呢?很令人深思啊······后来我在电脑自带的写字板上...

    由于长时间没有接触过Java了,导致我把很多东西都忘了!所以最近决定每天都看一点,回想一下,练一练手!那么在今天的练习中我遇到了这样一个问题:

    
    public class Helloworld{
        public static void main(String[] args){
            System.out.println("好好学习Java!");//输出引号内的内容,无所谓英文还是中文
        }
    }

    首先这个代码是没有任何问题的!可是当我用命令提示符进行编译的时候出现了这样的问题:
    这里写图片描述
    这就让人很是郁闷了。。。我再三检查代码段,发现代码是完全正确的!那到底是哪里出问题了呢?很令人深思啊······后来我在电脑自带的写字板上重新写了一个一样的代码,发现编译之后可以正常运行···如下图:
    这里写图片描述
    这就很神奇了!后来经过我的细细研究发现是由于Notepad++的默认编码格式与电脑的不符,电脑的是GBK编码格式!而Notepad++的默认编码格式却是UTF-8-BOM(如下图所示)由于编码格式的不同导致电脑无法准确的编译出来 ,从而给出了乱码!
    这里写图片描述
    所以我们的解决方法就是把Notepad++的默认编码格式改成与GBK相兼容的编码格式就可以编译出正确的结果了!(如下图所示:)
    这里写图片描述
    注意:更改编码最好在写代码之前进行更改!

    展开全文
  • win7下命令提示符

    2016-09-29 10:58:19
    1、点击主菜单,在运行里面输入 cmd 既可以打开命令提示符2、一些命令:notepad 记事本 cd 进入目录 dir 显示目录下的文件 ipconfig ip地址、网络 write 写字板 mem.exe 显示内存使用情况 mplayer2 简易...
  • 前言 相信,很多小伙伴儿都在命令提示符中执行过 ipconfig 查看 ip 信息。我们还可以执行 ping ip 来 ping 对应的 ip 地址,执行 notepad 启动记事本,...
  • I have added notepad++.exe to my Path in Environment variables. 我已经在环境变量的路径中添加了notepad++.exe 。 No
  • @toc 新建文本文件,将文件后缀改为reg 打开该文件 使用程序开发工具或Notepad++,将字符集编码改为ANSI编码 将以下代码复制到文件中保存 Windows Registry Editor Version ...@="命令提示符(管理员)" "ico...
  • gpedit.msc—–组策略 sndrec32——-录音机 Nslookup——-IP地址侦测器 explorer——-打开资源管理器 logoff———注销命令 tsshutdn——-60秒倒计时关机命令 ...notepad——–打开记事本 cleanmgr——-垃圾整理
  • · ...这里记录另一种方式:通过向系统添加注册表的方式,在鼠标右键菜单中加入“此目录下打开命令提示符”选项。。。 具体步骤: 1、新建 .txt 文本文件,写入以下内容: Windows Registry Edit...
  • 打开cmd的方式 win键+R 在任意盘里的地址栏改为cmd+回车 常用的Dos指令 #盘符切换 例如D:或C: #查看当前目录下的所有文件 dir #切换目录 cd +目录名 换盘还需在cd后+/d cd ..... notepad #记事本 #p
  • 在任一NTFS分区下打开CMD命令提示符,输入echo abcde&gt;&gt;a.txt:b.txt,则在当前目录下会生成一个名为a.txt的文件,但文件的大小为  0字节,打开后也无任何内容,只有输入命令:notepad a.txt:b.txt ...
  • Windows常用命令

    2019-08-11 21:42:16
    cmd --- 命令提示符 notepad --- 记事本 write --- 写字板 clipbrd --- 剪切板 ping --- 检测网络 netstat ---查看连接 calc --- 计算器 eventvmr --- 事件查看器 osk --- 屏幕键盘 mstsc --- 远程桌面 ...
  • windows常用运行命令

    2015-03-14 11:17:00
    cmd :CMD命令提示符 notepad:打开记事本 calc:启动计算器 mspaint:画图板 control:打开控制面板 explorer:打开资源管理器 taskmgr:打开任务管理器 osk:打开屏幕键盘 services.msc:...
  • cmd :CMD命令提示符 notepad:打开记事本 calc:启动计算器 mspaint:画图板 control:打开控制面板 explorer:打开资源管理器 taskmgr:打开任务管理器 osk:打开屏幕键盘 services.msc:进入服务界面 mstsc:远程...
  • Notepad++在程序员使用当中非常普遍流行的,其中运维...Notepad++运行python代码的过程,其实是调用cmd(命令提示符)运行的python代码,因此要确保你已经安装了python。notepad运行python代码的步骤:1、用notepa...
  • Java小白的成长路线

    2018-11-13 16:54:34
    Java大数据 第一天 常见的DOS命令 dir—展现指定目录下的所有的子文件和子目录—directory mkdir—新建目录—md ...exit—退出命令提示符 notepad—打开记事本 calc—打开计算器 mspaint—打开画图 Java 19...
  • Java语言基础-1

    2018-04-18 21:02:18
    dir-展现指定目录下的所有的子文件和子目录-directory mkdir-新建目录-md rmdir-删除目录-从计算机中...exit-退出命令提示符 notepad-打开记事本 calc-打开计算器 mspaint-打开画图 Java 1995年SUN推出的 Oak-Jame
  • 1、首先要确保python解释器已经安装成功,查看方法,windows可以在命令提示符中查看,通过按下win+R键,调出运行窗口,在输入框中输入cmd回车,然后在命令行中输入python,若出现版本信息。例如Python 3.6.1 (v3.6.1:69c0...
  • 如何使用notepad运行python程序

    千次阅读 2019-07-12 17:34:25
    首先要确保python解释器已经安装成功,查看方法,windows可以在命令提示符中查看,通过按下win+R键,调出运行窗口,在输入框中输入cmd回车,然后在命令行中输入python,若出现版本信息,例如Python 3.6.1 (v3.6.1:69c0db5, ...
  • 1、 开启管理员账户,在命令提示符中输入如下命令后回车: net user administrator /active:yes 2、 关闭管理员账户,在命令提示符中输入如下命令后回车: net user administrator /active:no 3、 初始化网络环境 ...
  • Notepad的安装和使用 为什么要安装Notepad软件:能够显示行号… 安装成功后的设置:(修改语言和编码)设置——首选项——新建——java,... 用命令提示符窗口的时候,欲输入"javac HelloWorld.java",可以输入"...
  • Cmd Cmd命令提示符,msdos Regedit 注册编辑器 Services.msc 系统服务 Msconfig 系统配置实用程序 Notepad 打开记事本 Calc 启动计算器 Matsc 远程桌面连接 Gpedit.msc 打开组策略 Shutdown 60秒倒计时关机命令 ...
  • DOS常用命令

    2020-05-19 20:02:32
    开始+系统+命令提示符 Win+R 输入 cmd 打开 在任意文件夹下,按住shift+鼠标右键,选择在此处打开命令提示符 资源管理器的地址栏前面加cmd路径 管理员方式运行:选择以管理员身份运行 常用DOS命令: F: #盘符切换 ...
  • 命令提示符 或者 win + R -> 输入cmd ->点击确定) 1.2 在cmd中输入java -version 1.3 出现 C:\Users\32674>java -version java version "1.8.0_202-ea" Java(TM) SE Runtime Environment (build 1.
  • DOS命令

    2021-02-01 19:27:29
    开始+系统+命令提示符 win+R+输入CMD(yes!yes!yes!) 管理员方式运行:选择以管理员方式运行 常用的DOS命令 #盘符切换 #查看当前目录下的所有文件 dir #切换目录 cd change director #cd .. 返回上一级 #清理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 446
精华内容 178
关键字:

命令提示符notepad