如何像Windows原生命令一样在任意目录运行控制台应用程序
解答
这种调用方式不是Windows原生命令独有的特性,第三方控制台程序完全可以实现相同的使用效果,核心是依赖Windows命令解释器的路径查找规则,常用实现方法如下:
- 方法一:将程序所在目录加入Path环境变量(一劳永逸,和系统命令实现逻辑完全一致)
Windows控制台执行无路径的命令时,会自动遍历Path环境变量中登记的所有目录,查找匹配的可执行文件(exe、bat、cmd等格式),找到后直接运行,不需要手动切换到程序所在目录。
操作流程:- 右键「此电脑」依次打开「属性-高级系统设置-环境变量」
- 仅需当前账号使用就编辑「用户变量」下的Path条目,需要全设备账号使用就编辑「系统变量」下的Path条目
- 新增一条记录,填入你的app.exe所在文件夹的完整绝对路径,保存后重启控制台即可生效
生效后在任意目录下直接输入app.exe 你的命令参数(甚至可以省略.exe后缀,直接输app 命令参数)就能启动程序,和ipconfig、systeminfo这类内置命令的使用体验完全一致。
- 方法二:自定义短命令别名,无需输入完整exe文件名
如果觉得原exe文件名过长,可以自定义更简短的调用命令,不需要修改原程序文件名:- 临时别名:在当前控制台窗口输入
doskey 短命令名=程序完整绝对路径 $*,比如doskey myapp=D:\workspace\app.exe $*,之后在当前窗口输入myapp 参数即可启动程序,$*的作用是把后续输入的所有参数透传给目标程序,注意这种方式设置的别名仅对当前控制台窗口生效,关闭窗口后自动失效。 - 永久别名:可以在任意一个已经被加入Path的目录下,新建一个和你想要的短命令同名的bat脚本,脚本第一行写
@echo off,第二行写程序完整绝对路径 %*,比如命名为myapp.bat,之后任意控制台窗口输入myapp 参数都能直接启动对应程序。
- 临时别名:在当前控制台窗口输入
- 补充小技巧:不需要手动输全文件名,在控制台输入命令前缀时按
Tab键,系统会自动匹配当前目录、Path目录下符合前缀的可执行文件,重复按Tab可以在多个匹配结果间切换,大幅减少输入量。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

