在Windows命令提示符下的别名

我已经将notepad++.exe添加到我在环境variables中的path。

现在在命令提示符下, notepad++.exe filename.txt打开filename.txt 。 但是我只想做np filename.txt来打开文件。

我尝试使用DOSKEY np=notepad++ 。 但是,它只是把一个已经打开的记事本++而不打开文件的最前沿。 我怎样才能打开文件?

谢谢。

你需要传递参数,试试这个:

 doskey np=notepad++.exe $* 

编辑 (回应罗蒙诺夫的评论)问: 有什么办法可以使命令提示符记住,所以我不必每次打开新的命令提示符运行这个?

doskey是一个由命令处理器(如cmd.exe)解释的文本命令,它不能修改某些其他进程(特别是尚未启动的进程)中的状态。

使用doskey设置其初始命令shell环境的用户通常使用/K选项(通常通过快捷方式)来运行batch file,该文件执行所有常用设置(如设置窗口的标题,颜色等)。

 cmd.exe /K env.cmd 

env.cmd:

 title "Foo Bar" doskey np=notepad++.exe $* ... 

为了增加josh的答案,

您可以使别名持续执行以下步骤,

  1. 使用DOSKEY命令创build一个.bat或.cmd文件。
  2. 运行regedit并转到HKEY_CURRENT_USER – > Software – > Microsoft – > Command Processor
  3. 添加名为AutoRun的string值条目以及.bat / .cmd文件的完整path。

    例如,%USERPROFILE%\ alias.cmd
    %USERPROFILE%replacepath的初始部分对于在多台机器之间进行同步很有用。

这样,每次运行cmd,都会加载别名。

为了完整起见,下面是一个模板来说明可能有用的别名。

 @echo off :: Temporary system path at cmd startup set PATH=%PATH%;"C:\Program Files\Sublime Text 2\" :: Add to path by command DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\" DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\" :: Commands DOSKEY ls=dir /B DOSKEY sublime=sublime_text $* ::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore. DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe" DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd :: Common directories DOSKEY dropbox=cd "%USERPROFILE%\Dropbox\$*" DOSKEY research=cd %USERPROFILE%\Dropbox\Research\ 

  • 请注意, $*语法在一个目录string以及一个带有参数的可执行文件之后工作。 所以在上面的例子中,用户自定义命令dropbox research指向了与research相同的目录。
  • 正如Rivenfall指出的那样,包含一个允许方便编辑env.cmd文件的命令是一个好主意。 请参阅上面的alias 。 如果您处于cmd会话中,请inputcmd以重新启动cmd并重新加载env.cmd文件。

当我在互联网上search这个问题的答案时,不知何故讨论的重点仅仅在于持久性,还是只针对DOSKEY的一些用法。 希望有人能从这两方面受益!


这里有一个.reg文件来帮助你安装env.cmd 。 现在将其作为上面build议的保pipe箱文件夹的示例。

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="%USERPROFILE%\\Dropbox\\dev\\misc\\env.cmd" 

鉴于您将记事本++。exe添加到您的PATHvariables,这是非常简单的。 使用以下代码在名为np.bat的System32文件夹中创build一个文件:

 @echo off call notepad++.exe %* 

%*将你给np命令的所有parameter passing给notepad++.exe命令。

编辑:您将需要pipe理员权限将文件保存到System32文件夹,这对我来说有点不可思议。 我只是在其他地方创build了该文件,并手动将其移动到System32。

如果你只是要一些简单的命令,你可以按照下面的步骤:

  1. 创build一个名为C:\ Aliases的文件夹
  2. 将C:\ Aliases添加到您的path(因此每次都会find其中的任何文件)
  3. 在C:\ Aliases中为每个你想要的别名创build一个.bat文件

也许矫枉过正,但不像Argyll的答案(否则那么优秀),每次都解决了这个问题。

例如,我有一个名为dig2.bat的文件,内容如下:

 @echo off echo. dig +noall +answer %1 

您的np文件只会有以下内容:

 @echo off echo. notepad++.exe %1 

FWIW,我的C:\ Aliases目录中有大约20个别名(单独的.bat文件) – 我只是根据需要创build新的别名。 也许不是最好的,但它工作正常。

或者,您可以使用cmder ,它可以像linux一样添加别名:

 alias subl="C:\Program Files\Sublime Text 3\subl.exe" $* 

另外,您可以使用该命令在您的path(例如C:\ Windows)中创build一个alias.cmd

 @echo %2 %3 %4 %5 %6 > %windir%\%1.cmd 

一旦你这样做,你可以做这样的事情:

 alias nameOfYourAlias commands to run 

之后你可以inputcomman line

 nameOfYourAlias 

这将执行

 commands to run 

但是对我来说最好的办法就是添加一个程序的path。

 setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M 

而现在我运行崇高的

 subl index.html 

实际上,我会更好的让你们,让我们用一种我以前用来编程Amiga的技术。 在您使用的任何新系统上,无论是个人还是专业,第一步是创build两个文件夹:C:\ BIN和C:\ BATCH。 然后修改你的path语句,把C:\ BATCH; C:\ BIN; [其余path]放在开头。

这样做后,如果你有一些你需要访问的过时的实用工具,只需将它们复制到C:\ BIN文件夹,它们就在你的path中。 要暂时覆盖这些分配,可以向C:\ BATCH文件夹中添加一个与可执行文件同名的batch file,path将在C:\ BIN文件之前find它。 它应该涵盖你可能需要做的任何事情。

当然,最近这种做法的正确方法是为文件创build一个符号连接,但同样的原则也适用。 还有一点额外的额外奖金。 如果你想在系统中添加一些与已经存在的path相冲突的东西,把它放在C:\ BIN或者C:\ Batch文件夹中将简单地抢占原始文件 – 允许你暂时或永久地覆盖东西,或者重新命名你感兴趣的名字 – 而不用改变原来的名字。

控制台别名在Windows 10中

要定义控制台别名,请使用Doskey.exe创build一个macros,或者使用AddConsoleAlias函数。

DOSKEY

 doskey test=cd \a_very_long_path\test 

AddConsoleAlias

 AddConsoleAlias( TEXT("test"), TEXT("cd \\<a_very_long_path>\\test"), TEXT("cmd.exe")); 

更多关于参数的信息等链接 。

既然你已经有notepad++.exe在你的path。 在名为np文件夹中创build一个快捷方式,并将其指向notepad++.exe

首先,您可以创build一个名为np.cmd的文件,并将其放在PATHsearch列表中的文件夹中。 然后,编辑np.cmd文件如下:

 @echo off notepad++.exe 

使用doskey是正确的方法,但是当命令提示符窗口closures时它会重置。 您需要将该行添加到类似.bashrc的对象中。 所以我做了以下几点:

  1. 将“C:\ Program Files(x86)\ Notepad ++”添加到系统pathvariables
  2. 制作一个记事本++。exe文件(当然在同一个文件夹中),并将其重命名为np.exe

工作得很好!