如何像在Windows中那样在Windows的命令提示符中创建命令别名bash
?
我是doskey
在论坛主题中找到的,所以我可以执行以下操作:
doskey ls=dir /b
...现在该命令的ls
行为有点像ls
在Unix上。(我ls
经常在中输入cmd
,这甚至不好笑。)
但是,如何使它们在会话之间停留呢?下次我打开时,它消失了cmd.exe
。(有类似的东西.bash_profile
吗?)
如何像在Windows中那样在Windows的命令提示符中创建命令别名bash
?
我是doskey
在论坛主题中找到的,所以我可以执行以下操作:
doskey ls=dir /b
...现在该命令的ls
行为有点像ls
在Unix上。(我ls
经常在中输入cmd
,这甚至不好笑。)
但是,如何使它们在会话之间停留呢?下次我打开时,它消失了cmd.exe
。(有类似的东西.bash_profile
吗?)
Answers:
在这种情况下,可以使用cygwin,尽管这并非完全正确。
http://www.cygwin.com/ CygWin
下载:http : //cygwin.com/setup.exe
要在Windows中轻松访问它,可以在路径中放入c:\ cygwin \ bin。
请注意,有一些与Windows软件冲突的命令并不等效,例如find(1)vs find.exe-find(1)列出了所有文件和子目录,而find.exe功能类似于grep。
另一种选择是访问
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun或HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun
查看
cmd.exe /?更多细节
使用@DOSKEY
命令和HKCU\Software\Microsoft\Command Processor
自动运行选项在Windows命令提示符中设置永久别名非常容易。
快速分步指南:
Alias.bat
。复制/粘贴以下文本。提示:我建议C:\Bin
为所有命令行工具创建一个文件夹。HKEY_CURRENT_USER\Software\Microsoft\Command Processor
。Autorun
,并将该值设置为Alias.bat
文件的绝对路径。每当您打开命令提示符时,该批处理文件都将执行。
Alias.bat的内容
DOSKEY ls=DIR $*
DOSKEY cp=COPY $*
DOSKEY xcp=XCOPY $*
DOSKEY mv=MOVE $*
DOSKEY clear=CLS
DOSKEY h=DOSKEY /HISTORY
DOSKEY alias=if ".$*." == ".." ( DOSKEY /MACROS ) else ( DOSKEY $* )
现在,您可以键入alias
(即DOSKEY /MACROS
)以查看别名/宏的当前列表。
要为当前会话添加新的别名,您只能使用alias name=command
。
@DOSKEY
命令在退出Autodesk Maya 2010时会导致崩溃。可能有解决方法,例如检查父进程是否为Maya,但是我没有花时间进行调查。
也有点离题-
使用PowerShell而不是cmd.exe
命令行。好消息是,PowerShell具有与等效的功能.bash_profile
,并且就像cmd.exe
命令行一样运行。它带有内置的别名生成功能。坏消息是,如果您想做一些比简单cmd.exe
命令更复杂的事情,那将有一些学习上的困难。
顺便说一下,现成ls
定义为的别名dir
。
有一个注册表项,
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
可让您在启动cmd提示符时运行命令。这包括一个批处理文件。
将您的别名放入一个名为alias.cmd的文件中,并添加/K \path\to\alias.cmd
到用于启动的快捷方式中cmd.exe
。
我将做一个死灵法师,并将这条线索从死里复活。这个答案对我来说并不令人满意。我知道有更好的方法。我涉足制作和添加蝙蝠文件的问题,并试图弄清楚如何使意大利面条球正常运转,但效果并不理想。无论如何,我还是回到了Google。
我也确实找到了这个方法。如何添加新的DOS别名/命令并为管理DOS创建键盘快捷键。它的工作原理很棒,应该可以在98-7上运行(有点滑稽的编号系统,但是它是Windows)。我希望它能帮助该线程上的那些人以及那些Google发送这种方式的人。
这种方式不像Alias一样简单,也不是doskey。设置完成后,这几乎是相同的工作。
我还要补充一点,与丹尼斯·威廉姆森的答案合并的部分要好得多。您可以为同一应用程序的多个版本提供shell环境,例如,旧脚本为php 4,测试服务器为php 5。
无论如何,这对我来说要好得多。
通过设置PATH环境来解决
创建ls.c文件
输入以下代码
int main()
{
system("dir /b");
return 0;
}
进入ls.c并编译文件:
$gcc ls.c -o ls
创建一个可执行文件ls.exe
创建目录,将其命名为cmdline_tools
$mkdir cmdline_tools
将ls.exe复制到目录
在PATH环境中设置目录的路径[复制目录的位置并将其粘贴到PATH中]
C:/cmdline_tools
打开您的cmd.exe并输入
$ ls
它用作dir命令。您也可以用相同的方式处理其他命令。如果没有,请告诉我们。
CMD具有来自doskey和bashrc的别名/功能(来自cygwin> bash),正斜杠也可在cmd中使用(从Win7开始)
创建shorcut到cmd以使用cmdrc.cmd
cmd -a“ / k%HOME%\ cmdrc.cmd c:\”
2 C:>猫%HOME%/ cmdrc.cmd
:: Override same named builtin windows commands
:: To override these aliases, prefix with '@', eg. @date will not use alias.
@doskey date=c:\cygwin\bin\date.exe $*
@doskey echo=c:\cygwin\bin\echo.exe $*
@doskey mkdir=c:\cygwin\bin\mkdir.exe $*
@doskey rmdir=c:\cygwin\bin\rmdir.exe $*
@doskey find=c:\cygwin\bin\find.exe $*
@doskey time=c:\somedir\time.exe $*
:: using a particular rsync with some options
@doskey rsync=c:\cygwin\bin\rsync.exe -e "ssh -F %HOME%/.ssh/config" $*
@doskey cp='cp -vi %*'
@doskey ..=cd ..
@doskey ...=cd ../..
:: Or use bashrc (bash aliases, bash functions):
:: eg. In bashrc we have "alias cpvi='cp -vi'"
@doskey cpvi=bash -ic "set +u; cpvi $*"
:: now cpvi is callable from cmd.
:: Install clink_x64 if you want readline editing in cmd