我希望能够在 Windows 的命令行中键入一些可执行文件并运行它,无论我是否位于文件所在的文件夹中。
我如何设置或安装它,以便我可以输入一些程序并且无论我的文件夹位置如何它都会运行吗?
答案1
打开系统属性(右键单击“我的电脑”->“属性”)单击“高级”选项卡和“环境变量”按钮。在系统变量部分中查找路径。然后将程序放在该路径中列出的目录之一中,或将安装目录添加到列表中。后者可能是更好的选择
答案2
您可以将该程序目录的路径添加到您的 PATH 环境变量中。
答案3
在每个常见的操作系统中,这就是 PATH 变量的用途。
如果您受限于 Windows,那么如果您想广泛使用它,那么有一种更好的方法:我曾经为很多程序设置它,因此我可以通过 Win-R 启动我的程序(如开始->运行或在命令行上),输入可执行文件名称的几个字母,利用 MRU 列表并启动应用程序。
将这些可执行文件的所有路径添加到路径的缺点是,这会减慢命令执行速度:每次调用程序时,都必须扫描所有路径。因此,PATH 变量仅应用于包含多个可执行文件的目录,例如“bin”或“tools”目录。
更好的方法是在注册表中创建一个正确的条目,顺便说一句,许多程序安装程序都会自己执行此操作。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\
是要去的地方。您已经会看到很多条目。据我所知,这还允许两个不同的命令启动同一个程序,但在不同的工作目录中,或不同的属性中。
不幸的是,我还没有从 Microsoft/MSDN 找到有关可以找到的参数(如RunAsOnNonAdminInstall
或 )的任何信息BlockOnTSNonInstallMode
。我们只能对此进行推测。
这还允许您“重命名”程序而无需实际重命名可执行文件(如果您更新它或它是更大套件的一部分,这可能会给您带来麻烦),并且如果您切换到另一个最喜欢的应用程序来执行某项任务,则可以顺利迁移。当我出于习惯/错误输入“wmplayer”和“ACDsee32”时,vlc 和 IrfanView 启动了。
编辑 供参考微软文档关于应用程序注册。
答案4
我想为这个问题添加一个现代的答案(SO 网站的长尾哲学)。
PowerShell 是 Windows 上的现代 shell。Chocolatey Nuget 是一个命令行应用程序。它的标语是“适用于 Windows 的 apt-get”。
Chocolatey 使用的模式(从其他平台的包管理器克隆而来):
程序及其所有 EXE/DLL 都安装到C:\Program Files(x86)\MyCompany\MyApp
。但只使用一个 EXE,App.EXE
。因此 chocolatey 不会添加...\MyCompany\MyApp
到 PATH。有一个文件夹,C:\chocolatey\bin
,每个程序都有一个 MyApp.bat 文件。每个 bat 文件都有一行运行 EXE 的完整路径:
"C:\Program Files(x86)\MyCompany\MyApp\App.EXE" %*
即使您没有 Chocolatey,我也会推荐相同的模式。创建一个%USERPROFILE%\Documents\bin
文件夹,然后创建 .bat 文件。在 PowerShell 中,您可以使用Set-Alias
它来执行此操作,将其添加到您的默认 profile.ps1 文件中。