在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的答案,
您可以使别名持续执行以下步骤,
- 使用
DOSKEY
命令创build一个.bat或.cmd文件。 - 运行regedit并转到HKEY_CURRENT_USER – > Software – > Microsoft – > Command Processor
-
添加名为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。
如果你只是要一些简单的命令,你可以按照下面的步骤:
- 创build一个名为C:\ Aliases的文件夹
- 将C:\ Aliases添加到您的path(因此每次都会find其中的任何文件)
- 在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的对象中。 所以我做了以下几点:
- 将“C:\ Program Files(x86)\ Notepad ++”添加到系统pathvariables
- 制作一个记事本++。exe文件(当然在同一个文件夹中),并将其重命名为np.exe
工作得很好!