繁体   English   中英

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

[英]"Register" an .exe so you can run it from any command line in Windows

如何使 .exe 文件可以从 Windows 命令窗口中的任何位置访问? 是否有一些必须输入的注册表项?

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

您可以通过将其安装到已经在PATH上的文件夹中或将您的文件夹添加到PATH中来做到这一点。

您可以让您的安装程序执行此操作 - 但您可能需要重新启动机器以确保它被拾取。

视窗 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 重新启动系统 重新启动命令提示符

您可以添加以下注册表

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

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

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

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

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

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

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

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

命令/CMD/批处理

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

电源外壳

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

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

它非常简单,不会超过 30 秒。

例如位于 D:/Softwares/vlc/abc.exe 的名为 abc 的软件,将 abc.exe 的文件夹路径添加到系统环境变量中。

我的电脑 -> 点击属性 -> 点击高级系统设置 -> 点击环境变量

在此处输入图像描述

在此处输入图像描述

单击确定。

现在您只需打开 cmd 提示符即可从任何地方启动该软件。 要使用 abc.exe,只需在命令行中键入 abc。

令人惊讶的是,在 windows 上这样一个简单的任务没有简单的解决方案,我创建了这个小 cmd 脚本,您可以使用它来定义 windows 上的别名(说明位于文件头本身):

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

这与 NPM 或 ruby​​ gems 等工具用于注册全局命令的方法几乎相同。

Windows 中类似 Bash 的简单别名

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

“安装”您的别名路径

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

添加您的别名

在新外壳窗口中打开

要启动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"

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

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

您也可以通过这种方式永久(重新启动后)添加到Path变量中:

右键我的电脑->点击属性->点击高级系统设置->点击环境变量

参考: 更改系统/用户变量

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

将其放在 c:\windows 目录中或将您的目录添加到环境设置中的“路径”(windows-break - tab advanced)

问候,//t

为了使它工作

您需要使用名称键Path修改环境变量的值,您可以添加任意数量的路径,用;分隔它们。 . 您给它的路径不能包含可执行文件的名称。

如果为变量Path添加路径,则可以从 cmd 或 porweshell 调用其中的所有可执行文件,方法是在不带.exe的情况下写入它们的名称,并且这些名称不区分大小写。


以下是如何从 python 脚本创建系统环境变量:

以管理员权限运行它以使其工作非常重要。 为了更好地理解代码,只需阅读上面的注释。

在 Windows 10 上测试

import winreg

# Create environment variable for call the program from shell, only works with compiled version
def environment_var(AppPath):

    # Point to the registry key of the system environment variables
    key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, r'System\CurrentControlSet\Control\Session Manager\Environment')

    def add_var(path):
        # Add the variable
        winreg.SetValueEx(key, 'Path', 0, winreg.REG_SZ, path)
        winreg.CloseKey(key)

    try:
        # Try to get the value of the Path variable
        allPaths = winreg.QueryValueEx(key, 'Path')[0]
    except Exception:
        # Create the Path variable if it doesn't exist
        add_var(path=AppPath)
        return        

    # Get all the values of the existing paths
    Path=allPaths.split(';')

    # If the Path is empty, add the application path
    if Path == ['']:
        add_var(path=AppPath)
        return

    # Check if the application path is in the Path variable
    if AppPath not in Path:
        # Add the application path to the Path environment variable and add keep the others existing paths
        add_var(path=AppPath+';'+allPaths)

# Only run this if the module is not imported by another
if __name__ == "__main__":
    # Run the function
    environment_var(AppPath=".")

您可以在winreg 文档中找到更多信息

这对我有用:

  • 将带有所需命令的 .bat 文件(我用来在其中运行 .py 脚本)放入文件夹中,
  • 进入变量环境设置(在搜索栏中输入 var 它会显示出来)
  • 在全局设置中
    • 选择路径,
    • 然后修改,
    • 然后将路径添加到您的 .bat 文件(没有 .bat 文件)
    • 关闭一切:完成。

打开cmd,写下.bat文件的名字就可以了

例子

想要在特定链接上打开 chrome

  1. 用这个创建一个 .bat 文件(例如,将其保存为 blog.bat )

    开始“”“https://pythonprogramming.altervista.org/”

  2. 从窗口桌面左下角的搜索栏中进入环境变量设置

  3. 进入环境变量(底部按钮)然后进入路径(底部)

  4. 添加路径,例如 G:\myapp_launcher

  5. 单击应用或确定

现在打开 cmd 并写博客:chrome 将在该页面上打开

做同样的事情来打开一个文件...在文件夹 G:\myapp_launcher (或任何你称之为放置批处理文件的文件夹)中创建一个 .bat,称之为 run.bat 或 myapp.bat 或其他任何东西(写在里面其中启动 filemane.pdf 或您要打开的任何文件),保存后,您可以使用 run 或 myapp 或任何您称为批处理文件的文件从 cmd 运行该文件。

您也可以将文件移动到C:\Windows ,但您需要使用管理员权限并注意

我说的注意是什么意思?
您需要注意,因为如果您在此文件夹中不正确地和意外地修改、删除和进行一些更改,您也可能会弄乱 Windows 系统文件(Windows 甚至可能不再工作)......
示例:不要添加与 Windows 文件同名的文件

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

SETX PATH "C:\Windows"

运行bat文件

现在将你的.exe 文件放在c:\windows 中,你就完成了。

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

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

警告注意:知道位于 $PATH 中列出的任何目录中的任何 .lnk 文件现在也都是“PATH'ed”。 出于这个原因,我更喜欢前面提到的批处理文件方法。

我不是程序员或类似的人,但这是我的简单解决方案:

  • 创建一个文件夹,您将在其中放置您要注册的所有程序的快捷方式;
  • 将该文件夹添加到PATH
  • 将您想要的所有快捷方式放在您在第一步中创建的文件夹中(上下文菜单、新建、快捷方式...)调用程序或函数时将调用快捷方式名称...而不是目标文件名

这将防止您无意中将不需要的文件放入PATH中。

如果您认为此答案需要改进,请随时发表评论。 干杯🍻。

PS 无需重新启动系统或文件资源管理器。 😀

最好的方法是将 .EXE 文件的文件夹路径添加到环境变量中的路径值中。

我不确定这适用于哪些版本的 Windows,但我将一些有用的.bat.exe文件放入:

%LOCALAPPDATA%\Microsoft\WindowsApps

(相当于%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

这似乎在我的默认路径上。 我很想看看这是否是一般情况。

DOSKEY是 Microsoft 版本的“别名”。 该功能已内置于所有版本的 Windows(以及大多数版本的 DOS)中

doskey fred=c:\myApps\myprog.exe

每次打开命令提示符时都需要加载它。 您可以通过多种不同的方法来做到这一点。 一种方法是

Make a file containing all the doskey macros you want:
    doskey fred=c:\whatever.exe
    doskey alan=c:\whateverelse.exe

Change the file type / file name / file extension to .CMD or .BAT
    ren myfile.txt myfile.CMD

Add the CMD/BAT file to your command processor autoruns key:
    reg ADD \\HKCU\Software\Microsoft\Command Processor /v autorun /t REG_SZ /d myfile.CMD

有关更多信息,请参阅

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey

https://serverfault.com/a/1049766/142882

(serverfault.com/questions/95404/is-there-a-global-persistent-cmd-history)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM