我已经在环境变量的路径中添加了notepad++.exe。
现在在命令提示符中,notepad++.exe filename.txt打开filename.txt。但我想用np filename。txt来打开文件。
我尝试使用DOSKEY np=notepad++。但它只是把一个已经打开的notepad++放在前面,而不打开文件。我怎样才能让它打开文件呢?
谢谢。
我已经在环境变量的路径中添加了notepad++.exe。
现在在命令提示符中,notepad++.exe filename.txt打开filename.txt。但我想用np filename。txt来打开文件。
我尝试使用DOSKEY np=notepad++。但它只是把一个已经打开的notepad++放在前面,而不打开文件。我怎样才能让它打开文件呢?
谢谢。
当前回答
假设您将notepad++.exe添加到PATH变量中,这就非常简单了。 用以下代码在System32文件夹中创建一个名为np.bat的文件:
@echo off
call notepad++.exe %*
%*将您赋予np命令的所有参数传递给notepad++.exe命令。
编辑: 您需要管理员权限才能将文件保存到System32文件夹,这对我来说有点不可靠。我只是在其他地方创建了该文件,并手动将其移动到System32。
其他回答
你要创建一个别名,只需输入:
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 %*
你需要传递参数,试试这个:
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个文件。
首先,您可以创建一个名为np的文件。cmd并将其放在PATH搜索列表中的文件夹中。 然后,编辑np。CMD文件如下所示:
@echo off
notepad++.exe
如果你想在每个目录/每个项目的基础上启用别名,试试下面的方法:
First, create a batch file that will look for a file named aliases in the current directory and initialize aliases from it, let’s call it make-aliases.cmd @echo off if not exist aliases goto:eof echo [Loading aliases...] for /f "tokens=1* delims=^=" %%i in (aliases) do ( echo %%i ^<^=^> %%j doskey %%i=%%j ) doskey aliases=doskey /macros echo -------------------- echo aliases ^=^> list all echo alt+F10 ^=^> clear all echo [Done] Then, create aliases wherever you need them using the following format: alias1 = command1 alias2 = command2 ... for example: b = nmake c = nmake clean r = nmake rebuild Then, add the location of make-aliases.cmd to your %PATH% variable to make it system-wide or just keep it in a known place. Make it start automatically with cmd. I would definitely advise against using HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun for this, because some development tools would trigger the autorun script multiple times per session. If you use ConEmu you could go another way and start the script from the startup task (Settings > Startup > Tasks), for example, I created an entry called {MSVC}: cmd.exe /k "vcvars64 && make-aliases", and then registered it in Explorer context menu via Settings > Integration> with Command: {MSVC} -cur_console:n, so that now I can right-click a folder and launch a VS developer prompt inside it with my aliases loaded automatically, if they happen to be in that folder. Without ConEmu, you may just want to create a shortcut to cmd.exe with the corresponding command or simply run make-aliases manually every time.
如果你碰巧忘记了你的别名,使用aliases宏,如果出现任何问题,只需按Alt+F10重置当前会话,这是cmd中的内置命令。