2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-26

#はじめに
今回はコマンドプロンプトで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のことを指しています。

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

:point_up_tone2:レジストリ エディターの開き方 Windowsキーを押下し、`レジストリ エディター` と検索するとレジストリ エディタ-がヒットします
:v_tone2:AutoRun設定までの流れ![AutoRun設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/f9145b63-6a0d-c48f-ab1f-f939ee79da88.png) 設定後にAutoRunの上で `右クリック`>`編集`で値を自分のaliasのファイルがある階層までのパスとする。 ![値の登録](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/e6b9698f-6826-36b1-5eb9-57edd3f84b1a.png)
このようにすることで、コマンドプロンプト起動時に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とは違って戸惑うと思いますが、独自に追加してみてください。

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

それでは:wave:

#参考

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

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?