我已经在环境变量的路径中添加了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。在该文件夹中创建一个名为np的快捷方式,并将其指向notepad++.exe。
其他回答
假设您将notepad++.exe添加到PATH变量中,这就非常简单了。 用以下代码在System32文件夹中创建一个名为np.bat的文件:
@echo off
call notepad++.exe %*
%*将您赋予np命令的所有参数传递给notepad++.exe命令。
编辑: 您需要管理员权限才能将文件保存到System32文件夹,这对我来说有点不可靠。我只是在其他地方创建了该文件,并手动将其移动到System32。
为了补充josh的回答,
您可以通过以下步骤使别名持久,
用DOSKEY命令创建一个.bat或.cmd文件。 运行regedit,进入HKEY_CURRENT_USER\Software\Microsoft\Command Processor 添加字符串值条目,名称为AutoRun和.bat/的完整路径。cmd文件。 例如,%USERPROFILE%\alias。在命令cmd中,用%USERPROFILE%替换路径的初始段对于多台机器之间的同步很有用。
这样,每次运行cmd时,都会加载别名。
对于Windows 10或Windows 11,请将该条目添加到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor中。
(对于Windows 11,还要注意默认情况下“终端应用程序”指向PowerShell。搜索“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\
请注意,$*语法适用于目录字符串之后,也适用于带有参数的可执行文件之后。因此,在上面的示例中,用户定义的命令dropbox research指向与research相同的目录。 正如Rivenfall所指出的,包含一个允许方便地编辑别名的命令是一个好主意。cmd文件。参见上面的别名。如果您在一个cmd会话中,输入cmd重新启动cmd并重新加载别名。cmd文件。
当我在互联网上搜索这个问题的答案时,不知怎么的,讨论要么只集中在持久性上,要么只集中在DOSKEY的某些用法上。我希望在这里有人能从这两方面受益!
这里有一个.reg文件来帮助你安装别名。cmd。现在将它设置为上面建议的dropbox文件夹的示例。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"
对于单用户应用程序,上面的方法就可以了。不过,也有一些情况需要检查是否存在别名。CMD首先存在于注册表项中。参见下面的示例。
C:\Users\Public\init.CMD文件承载潜在的跨用户配置:
@ECHO OFF
REM Add other configurations as needed
IF EXIST "%USERPROFILE%\alias.cmd" ( CALL "%USERPROFILE%\alias.cmd" )
注册表项应相应更新为C:\Users\Public\init.CMD或使用.reg文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\Users\\Public\\init.cmd"
实际上,我要给你一个更好的,让你知道一个小技巧,自从我以前在Amiga上编程时,我就用过。在您使用的任何新系统上,无论是个人系统还是专业系统,第一步都是创建两个文件夹:C:\BIN和C:\BATCH。然后修改路径语句,将两者放在开头的顺序C:\BATCH;C:\BIN;[剩余的路径]。
完成这些后,如果你有一些需要访问的实用程序,只需将它们复制到C:\BIN文件夹,它们就在你的路径中。要临时覆盖这些赋值,您可以将一个与可执行文件同名的批处理文件添加到C:\ batch文件夹中,路径将在C:\BIN文件之前找到它。它应该涵盖你可能需要做的任何事情。
Of course, these days the canonical correct way to do this would be to create a symbolic junction to the file, but the same principle applies. There is a little extra added bonus as well. If you want to put something in the system that conflicts with something already in the path, putting it in the C:\BIN or C:\Batch folder will simply pre-empt the original - allowing you to override stuff either temporarily or permanently, or rename things to names you're more comfortable with - without actually altering the original.
你要创建一个别名,只需输入:
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文件,但从第二次开始,它将使用别名。