簡體   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