将.exe添加到默认路径而不添加目录


22

例如,我想将notepad ++添加到我的PATH中,但是该目录还包含uninstall.exe和其他几个文件/可执行文件,并且我不希望它们“污染”我的路径。我可以只添加一个notepad++.exe吗?

Answers:


17

您可以将批处理脚本添加到路径中的目录中,如下所示:

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

您可以命名notepad++.cmd。帮助部分使您可以轻松获取有关交换机的信息。

我把所有这些脚本和命令行程序中,被添加到一个目录%PATH%C:\Users\Public\Command\ ......,而该目录同步到所有的计算机和虚拟机。


8

创建一个包含以下内容的批处理文件:

@"C:\Program Files\Git\bin\git.exe" %*

.bat文件应另存为文件,例如在git.bat中的目录中PATH

@禁止将命令回显到调用shell。用引号""防止将空格解释为参数定界符。%*将所有参数粘贴到批处理文件中,而不是引用的可执行文件中。

现在,您可以使用批处理文件名中的before来调用可执行文件.bat。就我而言,git

参考文献:


对于许多将关闭CMD的程序,直到您将其关闭。start如我的回答所示,您需要避免使用。
paradroid

@paradroid:谢谢,但是除非有要求,否则保持与父级的连接是标准的终端行为。用户应该start git为他们做而不是做。如果批处理脚本exec进入了请求的进程,它将表现得更好,但这在Windows上是不可能的:serverfault.com/questions/315077/…。我可以假装,call但这将是徒劳的,而且毫无意义。
马特·乔纳

3

拖动快捷方式notepad++.exeC:\Windows\System32


或者,按照@Synetech inc。的建议,您可以将快捷方式放在单独的目录(例如C:\Shortcuts)中,然后将该目录添加到%PATH%

setx PATH "%PATH%;C:\Shortcuts"

如某些注释所示,这仅在“运行”对话框中有效。为了获得从命令提示符启动的快捷方式,您需要将快捷方式扩展名(.LNK)添加到PATHEXT环境变量中。

setx PATHEXT %pathext%;.LNK

参考文献:

如何使用“运行”对话框轻松启动应用程序?


1
这是首选的解决方案(与批处理文件相对);在路径的(不同)目录中为其创建快捷方式-不要污染Windows目录!我有一个专门为此目的的文件夹Shortcuts
Synetech

1
这是的错误语法setx。您不必使用等号,而IIRC则需要将整个路径用引号引起来,如果当前路径中%PATH%有空格(它将使用空格)。
paradroid

并且不是SETX将波浪号而不是百分比用于变量以避免扩展它们吗?我知道某些env-var设置工具可以……
Synetech 2011年

2
这行不通。默认情况下(我拖动git.exe),“ git-快捷方式”,将其重命名为“ git.exe”,“ git”,“ git.cmd”等组合无效。它不会承认快捷方式。
马特·乔纳

3
这仅在从Run As对话框调用时有效,而在命令提示符下则无效。
马特·乔纳

1

只需在路径中的文件夹中使用创建符号链接mklink

例如(在管理员命令提示符下)

mklink "C:\Users\Me\Documents\Paths\np.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"

0

App Paths注册表项正是这样做的:将notepad ++。exe的路径设置为“ \ program files \ ...”,您将能够从Start-Run,cmd等启动它,就像从%PATH%中的目录。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

参考:https : //stackoverflow.com/questions/4822400/register-an-exe-so-you-can-run-it-from-any-command-line-in-windows


这不会使它从cmd可执行-仅从开始运行,或者在cmd中必须以“ start”作为前缀,如“ start myapp.exe”一样
Tahir Hassan

同意的命令提示,缺乏识别此变量的能力。PowerShell可以识别它。更重要的是,此解决方案仅适用于目录,因此不适用。
Todd Partridge

0

我不喜欢这里介绍的任何解决方案,因此尝试了其他方法。

  1. 安装链接外壳程序扩展(更多信息在此处

  2. 在某个地方创建一个文件夹来存储您的所有快捷方式(如Marteen建议的)并将其添加到您的%PATH%。我创建C:\Shortcuts并使用了Rapid Environment Editor将其添加到PATH中。

  3. 右键单击要添加到路径的文件(在资源管理器中),然后单击“选择链接源”

  4. 右键单击刚创建的文件夹,然后单击确定Drop As > Symbolink Link

  5. 如果需要,可以重命名symbolink链接。

而已。您现在应该可以通过命令行访问程序。如果只是将新文件夹添加到PATH,则必须重新启动cmd.exe或Cmder或ConEmu或所使用的任何文件。之后,您无需重新启动即可添加新程序。

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.