我已经在环境变量的路径中添加了notepad++.exe。

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

我尝试使用DOSKEY np=notepad++。但它只是把一个已经打开的notepad++放在前面,而不打开文件。我怎样才能让它打开文件呢?

谢谢。


当前回答

非常简单的自定义别名:

在系统的任何地方创建一个专门用于别名的新文件夹。创建一个新文件,命名为你想命名的别名,扩展名为.cmd。将所有命令写入文件,例如

cd /D D:\Folder
g++ -o run something.cpp

复制文件夹的路径。

>系统>关于>系统高级设置>环境变量…

现在在System variables部分中找到Path变量。单击它一次,然后单击Edit。现在单击New并粘贴复制的文本。

单击“确定”、“确定”和“确定”。重新启动Powershell/cmd提示符,瞧,您得到了持久的别名!您也可以使用相同的文件夹来创建其他别名,而无需再次更改Path变量!

其他回答

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

doskey np=notepad++.exe $*

编辑(回应Romonov的评论)Q:有什么方法可以让命令提示符记住,这样我就不必每次打开新的命令提示符时都运行这个了?

Doskey是一个由命令处理器(例如cmd.exe)解释的文本命令,它不能知道在其他进程(特别是还没有启动的进程)中修改状态。

使用doskey设置初始命令shell环境的人通常使用/K选项(通常通过快捷方式)来运行一个批处理文件,该文件执行所有常见的设置(如-设置窗口的标题,颜色等)。

cmd.exe /K env.cmd

env.cmd:

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

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

创建名为C:\Aliases的文件夹 将C:\ alias添加到路径中(这样每次都会找到其中的任何文件) 在C:\Aliases中为每个你想要的Aliases创建一个.bat文件

也许有点过分,但与@Argyll的回答不同(否则很好),这解决了每次加载的问题。

例如,我有一个名为dig2.bat的文件,其中包含以下内容:

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

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

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

然后只需将C:\Aliases文件夹添加到PATH环境变量中。如果您已经打开CMD或PowerShell,则需要重新启动它。

FWIW,我有大约20个别名(单独的.bat文件)在我的C:\ aliases目录-我只是根据需要创建新的。也许不是最简洁的,但效果很好。

更新:根据用户@Mav的一个很好的建议,使用%*比%1更好,这样你就可以将多个文件传递给命令,例如:

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

这样,你可以这样做:

np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt

它会打开所有3个文件。

你要创建一个别名,只需输入:

c:\>alias kgs kubectl get svc

Created alias for kgs=kubectl get svc

并使用别名如下:

c:\>kgs alfresco-svc

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
alfresco-svc   ClusterIP   10.7.249.219   <none>        80/TCP    8d

只需将以下alias.bat文件添加到您的路径。它只是在与自身相同的目录中创建额外的批处理文件。

  @echo off
  echo.
  for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
  echo @echo off > C:\Development\alias-script\%1.bat
  echo echo. >> C:\Development\alias-script\%1.bat
  echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
  echo Created alias for %1=%ALL_BUT_FIRST%

创建的批处理文件名为kgs.bat的示例如下:

@echo off 
echo. 
kubectl get svc %* 

我的快速而肮脏的解决方案是在PATH中已经存在的任何目录中添加一个BAT文件。

例子:

@ECHO OFF
doskey dl=aria2c --file-allocation=none $*
aria2c --file-allocation=none %**

因此,第一次运行“dl”时,它将执行bat文件,但从第二次开始,它将使用别名。

或者你也可以使用cder,它可以让你像linux一样添加别名:

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