“注册” .exe,以便您可以从Windows中的任何命令行运行它


Answers:


97

您需要确保exe位于PATH环境变量上的文件夹中。

您可以通过将其安装到上已有的文件夹中PATH或将文件夹添加到中来完成此操作PATH

您可以让安装程序执行此操作-但您需要重新启动计算机以确保将其拾取。


这个答案几乎总是错误的。至少它是不完整的。具体来说,这种方法对安装有效,但对卸载不利。当卸载与此相关的应用程序时,大多数卸载程序会WHIPE删除整个PATH变量。因此,如果编写将目录添加到PATH的安装操作,则应使其成为CUSTOM安装操作,该操作不会被通用remove软件包自动卸载。然后,将该“定制”安装步骤与一个卸载步骤匹配,该卸载步骤仅从PATH变量中删除您的目录。
金·Gentes,2015年

21
@KimGentes很好,这是卸载程序的问题。一个好的卸载程序应该很好地整理一下。它不会使答案错误。
克里斯·

3
我同意..这是安装程序的问题。但是由于所有安装程序都对变量执行此操作(它们不会解析和提取注册表项或ENV VARIABLES的一部分),因此对它进行解释似乎是审慎的做法。如果一个人正确地遵循这些指示,它们将始终会遇到这一问题,这意味着解决方案可能应该始终包括这一警告。没有安装包负责安装和卸载我所知道的注册表项或ENV变量的各个部分,但是如果有一些我不知道的地方,请告诉我。
金·Gentes

而不是“安装”环境,而是使用带有SETX命令的批处理文件:SETX PATH“ C:\ Windows” -----完成。
Stavm

3
SETX也很危险,因为它的长度限制比PATH变量本身低得多,并且会截断而不是失败。
Ben Voigt,2015年

48

您可以添加以下注册表

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe

在此键中,添加包含exe文件路径的默认字符串值。


1
@sherdim:我对此表示高度怀疑。但是,它始终与start命令一起使用,因此您可以start myexe在cmd.exe提示符下键入。但myexe我认为,仅靠它是行不通的(除非您myexe位于PATH环境变量的目录中或该目录位于环境变量中)。
Andreas Rejbrand

我只是制作一个myprog.cmd包含以下内容的小文件:@START myprog.exe %*这将调用的App Paths条目myprog.exe并传递所有命令参数。该文件应在PATH
Stavr00 '18

1
@sherdim @ andreas-rejbrand我可以确认,如果myexe不在Windows 10上,则无法使用PATHstart myexe确实可以使用此注册表更改,而无需将myexe添加到中PATH
davenpcj

@davenpcj:的确如此。我提到的注册表项与Windows Shell有关,与命令提示符无关。这样start myapp工作,与Win + R一样myapp,但myapp在cmd.exe中不是简单的。
安德烈亚斯·瑞布兰德

1
如果您从CMD.exe尝试,则可以从Explorer.exe运行此密钥,但找不到该密钥。
prampe

41

您必须将.exe文件的路径放入环境变量路径。转到“我的电脑->属性->高级->环境变量->路径”,然后通过将.exe的目录添加到path中来编辑路径。

我个人更喜欢的另一个解决方案是使用RapidEE进行更平滑的变量编辑。


38

Windows 10、8.1、8

打开开始菜单,

  1. 类型 Edit environment variables
  2. 打开选项 Edit the system environment variables
  3. 点击Environment variables...按钮
  4. 在那里您看到两个方框,在System Variables方框中找到path变量
  5. 请点击 Edit
  6. 弹出一个窗口,单击 New
  7. 输入您或文件的目录路径(目录表示从路径中排除文件名).exebatch
  8. 单击Ok所有打开的窗口,然后重新启动系统, 重新启动命令提示符

3
这是唯一帮助我的答案。我会补充说,“重新启动系统”不是必需的。只需重新启动cmd就足够了。
乔佛里·巴拉松

使用WinKey + R并键入SystemPropertiesAdvanced
prampe

29

与其将可执行文件放到路径上的目录中,不如在启动程序的路径上的目录中创建批处理文件。这样,您就不会将可执行文件与其支持文件分开,也不会在无意间将同一目录中的其他内容添加到路径中。

这样的批处理文件如下所示:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*

1
您介意添加这样一个批处理文件的示例吗?
petermeissner

我觉得这是最好的选择,我不想在路径变量中添加太多内容。我将编辑此批处理文件的答案示例。
Dino

1
我遇到的问题是它启动了一个新的外壳。我正在尝试使cygwin二进制文件在同一shell中启动,如果我直接引用它的话,它将这样做C:\cygwin\bin\grep.exe
Johann

4
@Johann:取出,start "" 然后从可执行文件的路径开始。另外,要在cygwin中使用,可能需要cygwin shell脚本或符号链接。或外壳别名。
Ben Voigt,2015年

完美,谢谢!我同意您在cygwin中使用的其他选项,但是在这种情况下,我尝试使用Powershell中的cygwin二进制文件。
2015年

5

令人惊讶的是,对于Windows上的如此简单的任务,没有简单的解决方案,我创建了这个小cmd脚本,可用于在Windows上定义别名(指令位于文件头本身):

https://gist.github.com/benjamine/5992592

这与NPM或ruby gems之类的工具注册全局命令所使用的方法几乎相同。


5

假设我的exe是C:\ Program Files \ AzCopy \ azcopy.exe

命令/ CMD /批处理

SET "PATH=C:\Program Files\AzCopy;%PATH%"

电源外壳

$env:path = $env:path + ";C:\Program Files\AzCopy"

我现在可以简单地azcopy从任何shell inc命令提示符,powershell,git bash等任何位置键入和使用


3
  • 如果要能够在cmd.exe或批处理文件中运行它,则需要将.exe所在的目录添加到%path%变量(System或User)中
  • 如果您希望能够在“运行”对话框(Win + R)或任何调用ShellExecute的应用程序中运行它,则将exe添加到应用程序路径键就足够了(这在安装/卸载期间不太容易出错,并且也不会混乱路径变量)


2

将其放在c:\ windows目录中,或将目录添加到环境设置中的“路径”(windows-break-高级选项卡)

问候,// t


与其将自定义可执行文件放入中C:\Windows,不如将自定义可执行文件添加到PATH环境变量中。
罗兰·伊利格

这取决于。我放在/ windows中的Putty.exe。
Teson

1

在安装中使用1行批处理文件:

SETX PATH "C:\Windows"

运行蝙蝠文件

现在,将您的.exe放在c:\ windows中,就可以了。

您可以在命令行中输入“ exename”,它将运行它。


2
与其将自定义可执行文件放入中C:\Windows,不如将自定义可执行文件添加到PATH环境变量中。
罗兰·伊利格

1

Windows中的类似Bash的简单别名

为了在Windows中为未自动添加到应用程序的应用程序获取类似于全局bash的别名,而无需将每个应用程序手动添加到路径,这是我想出的最干净的解决方案,它对系统的更改最少,并且更改最多以后定制的灵活性:

“安装”您的别名路径

mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"

添加别名

在新Shell窗口中打开

要启动C:\path to\my program.exe,传入所有参数,在新窗口中打开它,请创建c:\aliases\my program.bat具有以下内容的文件(有关启动命令的详细信息,请参见NT启动命令):

@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*

在当前Shell窗口中执行

首先C:\path to\my program.exe,传入所有参数,但在同一窗口中运行(更像bash的操作方式),创建c:\aliases\my program.bat具有以下内容的文件:

@echo off
pushd "C:\path to\"
"my program.exe" %*
popd

在当前Shell窗口2中执行

如果您根本不需要应用程序更改当前工作目录即可进行操作,则只需在别名文件夹内的可执行文件中添加符号链接即可:

cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"

0

添加到PATH,步骤如下(Windows 10):

  1. 在搜索栏中输入“ environment ...”,然后选择“ Edit the system environment variables”,这将打开“ System Properties”窗口
  2. 单击环境变量...按钮
  3. 在“环境变量”选项卡中,双击“系统变量”部分中的“路径”变量。
  4. 双击空白行,将路径添加到包含.exe的文件夹中,并粘贴路径。
  5. 单击确定并退出。打开一个新的cmd提示符,然后从任何文件夹中单击该命令,它应该可以工作。

0

另一种方法是通过添加.LNK到$ PATHEX中。然后,只需创建可执行文件的快捷方式(即:yourshortcut.lnk),并将其放入$ PATH中列出的任何目录中即可。

警告:请注意,位于$ PATH中列出的任何目录中的所有.lnk文件现在也都已进行“ PATH”处理。因此,我希望此方法前面提到的批处理文件方法。


-1

如果有人在我后面寻找它,这是添加路径的一种非常简单的方法。

将路径发送到文件,如图所示,从文件中复制并粘贴该路径,并在末尾添加特定路径,并在前面加上分号到新路径。在Windows 7之前可能需要对其进行修改,但至少这是一个简单的起点。

命令提示符图像将PATH导出到文本文件


答案的关键部分应该是文字,而不是外部屏幕截图。
罗兰·伊利格

-3

最好的方法是将.EXE文件安装到windows / system32文件夹中。这样,您可以从任何位置运行它。这是可以找到.exe像ping的同一位置


与其将自定义可执行文件放入中C:\Windows,不如将自定义可执行文件添加到PATH环境变量中。
罗兰·伊利格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.