windows使用doskey实现alias


原文链接: windows使用doskey实现alias

别名,用于简化常用输入。我们在使用命令行的时候,可以将常用的命令通过alias方式简化。

git

git提供了alias命令,比如我们可以在配置文件中设置:

[alias]
    st = status
    gi = "!gi() { curl -L -s https://www.gitignore.io/api/$@ ;}; gi"

以后我们输入git st 替代 git status

npm

npm没有直接提供配置alias方式,它内置了一些, 比如 npm lsnpm list

我们可以使用run script,但是需要在项目的package.json中,配置:

{
    "scripts" : {
        "preinstall" : "./configure",
        "install" : "make && make install",
        "test" : "make test"
    }
}

之后变可以通过npm xxx运行,npm也提供我们指定自定义的名称,比如:

{
    "scripts" : {
        "xxx" : "echo 'xxx'"
    }
}

之后通过 npm run xxx 运行。

windows下封装

bat文件

有些命令无法提供配置,我们可以自己建立一个.bat文件封装,将文件的路径放置到系统环境变量中,比如C:\Bin目录。

我将在命令行下打开资源管理器的命令封装为open, 新建一个open.bat文件,内容:

@echo off
explorer.exe %*

在命令行下,使用open . 即可在资源管理器中打开当前目录。注意:这里我们使用的是 %, 而不是下面的 $

doskey

windows批处理提供一个doskey命令,相当于alias,比如我们建立一个alias.bat文件,内容为:

@echo off
doskey ls=dir $*

然后在命令行下运行此批处理文件,在当前的命令行上下文中,即可使用ls简化dir命令。但是,当我们新开命令行的时候,实际创建了新的上下文,就不能直接使用了。

解决方案,也就是想办法在启动cmd.exe的时候,增加一个参数,让其启动的时候先执行alias.bat文件,就能为打开的命令行上下文添加alias了。

更新: doskey配合下面的clink autorun,可以将alias直接添加到命令行上下文中。

参考:

通过clink命令的autorun可以增加注入,我们利用这个命令,向命令行的上下文中注入相关alias,详见clink介绍。alias.bat文件如下:

@echo off
set HOME="C:\Users\15050107"
set EXPLORER_EXE="explorer.exe"
set SUBLIME_EXE="D:\Program Files (x86)\Sublime Text 3\sublime_text.exe"

doskey ls=dir $*
doskey open=%EXPLORER_EXE% $*
doskey cnpm=npm --registry=https://registry.npm.taobao.org --cache=%HOME%\.npm\.cache\cnpm --disturl=https://npm.taobao.org/dist --userconfig=%HOME%\.cnpmrc $*
doskey st=%SUBLIME_EXE% $*
doskey z=j $*

如此,我们就可以维护一个alias.bat用来管理所有的别名了。避免了使用多个bat文件的情况。

`