コマンドプロンプトをLinuxみたいに!alias(doskey)登録と永続化


はじめに

今回はコマンドプロンプトでlspwd, touchコマンドを使えるようにしていきたいと思います。
基本的にwsl上で作業している主ですが、pyinstallerで作成したexeファイルをWindows使用する都合上、windowsでの作業をしなくてはいけなくなり、いっそのことalias登録しておこうという気持ちになりました。1

環境

Windows10

aliasの登録, 永続化

1. alias用ファイルを作成

C:\Users\userといった任意の場所に、doskey(Linuxで言うalias)を記述するためのテキストファイルalias.txtなどを作成します。

2. aliasの登録

テキストファイルに登録したいdoskeyを記述します。

alias=if "$1"=="" (doskey /macros) else (doskey $*)
cat=type $*
cp=copy $*
h=doskey /history
history=doskey /history
ll=dir /ad
ls=dir /w
lv=more /E $*
mv=move $*
pwd=echo %CD%
touch=type nul > $*
tree=tree /f $b more
unalias=doskey $*=
diff=fc /N $*
mkvenv=py -m venv .\py3env
venvup=.\py3env\Scripts\activate.bat

ここで、最後の2つはpython venvを使わない人は記述しなくていいです。
少し使うのが楽になるって程度の記述です。

3. aliasの永続化

レジストリ エディターを開いて、
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
のどちらかを探し、

右クリック>新規>文字列値
AutoRunで追加します。

右クリック>編集>
doskey /macrofile=%USERPROFILE%\alias.txtとします。

ここで
%USERPROFILE%\alias.txtとは
C:\Users\user\alias.txtのことを指しています。

以下に、流れを把握するための画像を折りたたみいれています。

レジストリ エディターの開き方
Windowsキーを押下し、レジストリ エディター
と検索するとレジストリ エディタ-がヒットします

AutoRun設定までの流れ
設定後にAutoRunの上で
右クリック>編集で値を自分のaliasのファイルがある階層までのパスとする。


このようにすることで、コマンドプロンプト起動時にAutoRunが読み込まれ、aliasが適用されるはずです。

今度は、作成したテキストファイルに追加していくことで、aliasを増やしていけます。

4. 使ってみた

ls>touch>ls

C:\Users\user>ls
 ドライブ C のボリューム ラベルは Local Disk です
 ボリューム シリアル番号は ****-**** です

 C:\Users\user のディレクトリ

[.]              [..]             [.pylint.d]      [.vagrant.d]     [.VirtualBox]    [.vscode]        [3D Objects]
[alias]          [Apple]          [Contacts]       [Desktop]        [Documents]      [Downloads]      [Favorites]
[Links]          [Music]          [OneDrive]       [Pictures]       [Saved Games]    [Searches]       [vagrant]
[Videos]         [VirtualBox VMs] [workspase]
               0 個のファイル                   0 バイト
              24 個のディレクトリ  109,748,617,216 バイトの空き領域

C:\Users\user>touch test.txt

C:\Users\user>ls
 ドライブ C のボリューム ラベルは Local Disk です
 ボリューム シリアル番号は ****-**** です

 C:\Users\user のディレクトリ

[.]              [..]             [.pylint.d]      [.vagrant.d]     [.VirtualBox]    [.vscode]        [3D Objects]
[alias]          [Apple]          [Contacts]       [Desktop]        [Documents]      [Downloads]      [Favorites]
[Links]          [Music]          [OneDrive]       [Pictures]       [Saved Games]    [Searches]       test.txt
[vagrant]        [Videos]         [VirtualBox VMs] [workspase]
               1 個のファイル                   0 バイト
              24 個のディレクトリ  109,748,621,312 バイトの空き領域

ちゃんと追加されました。

alias

C:\Users\user>alias
cat=type $*
alias=if "$1"=="" (doskey /macros) else (doskey $*)
cp=copy $*
ll=dir /ad
h=doskey /history
lv=more /E $*
history=doskey /history
ls=dir /w
mv=move $*
pwd=echo %CD%
touch=type nul > $*
unalias=doskey $*=
tree=tree /f $b more
mkvenv=py -m venv .\py3env
venvup=.\py3env\Scripts\activate.bat

本来コマンドプロンプトでは使えないaliasコマンドも使えました。

おわりに

うまくできましたか?

ちなみに登録しなくともコマンドプロンプトでは
lsコマンドはdirコマンド
aliasコマンドはdoskey /macrosコマンド
で実行できます。

ただUbuntuなどになれている人はコマンドプロンプトに移ってきてびっくりしたことがあると思います。
変数の設定などが少しLinuxのaliasとは違って戸惑うと思いますが、独自に追加してみてください。

少しでも参考になればと思います!

それでは

参考


  1. pyinstallerはクロスコンパイラではないためWindows用のexeファイルはwidows上でコンパイルしなければいけないらしい