プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windows、コマンドプロンプトで「ls」コマンドを使えるようにする
結論から書くと、

1.バッチファイルでやる方法
2.doskeyコマンドでやる方法

の2つがあります。

バッチファイルでやる方法は、こんな内容のバッチファイル「ls.bat」を作成しφ(--)

■ls.bat
@echo off

dir %1 %2

パスが通っているところ、例えば

%WINDIR%\system32\

にでも放り込めばOKです。

doskeyコマンドでやる方法は、まず、こんなエイリアスを設定しますφ(--)

doskey ls=dir $1 $2

これで、起動中のコマンドプロンプトでは「ls」が「dir」コマンドの別名として設定されます。

恒常的に使用できるようにするには、設定したエイリアス、例えば

ls=dir $1 $2

の内容を記述した設定ファイルを用意し、
コマンドプロンプトのショートカットのリンク先を

%windir%\system32\cmd.exe

から

%windir%\system32\cmd.exe /k "doskey /macrofile=【設定ファイル名】"

に変更してください。
要は、コマンドプロンプト起動時に「doskey」コマンドを実行して、
設定内容を読み込むようにするわけです。

そんな感じ(--)ノ

それでは、経緯その他を書いていきます。

私自身がUNIX系に慣れているせいか、
どうも「ls」と打ってしまう癖が付いていてですね。

コマンドプロンプトでも「ls」と打ってしまい

'ls' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と、よく怒られていたのです。

毎度毎度怒られるのも嫌なので、いっその事「ls」コマンドを使えるようにしちまおう!
そう考えたのが、今回の始まりです。

さてさて、どうしましょうね(--?

まずは「doskey」コマンドを使って

doskey ls=dir $1 $2

のようにエイリアスを設定して「dir」コマンドに対して「ls」の別名を付けてみました。
何もつけない

ls

も、対象フォルダを指定した

ls hoge_dir

も、ついでにオプションを指定した

ls /D hoge_dir

もきちんと動きます。
なんだ、簡単じゃん♪

そんなふうに考えていた時期が俺にもありました。

実はこれ、このままだとコマンドを実行したコマンドプロンプトでしか有効じゃないのですね。
恒常的に有効化するためには

1.設定内容をファイルに保存する
2.コマンドプロンプト起動時に設定内容を読み込む

の手順を踏む必要があります。
具体的には、doskeyで設定された内容

doskey /macros

を実行して表示される内容をファイルに保存して、
コマンドプロンプトのショートカットのリンク先を

%windir%\system32\cmd.exe

から

%windir%\system32\cmd.exe /k "doskey /macrofile=【設定ファイル名】"

に変更する必要があります。
要は、コマンドプロンプト起動時に「doskey」コマンドを実行して、
設定内容を読み込むようにするわけです。

なお、手動で設定ファイルを作成した際に

無効なマクロ定義です。

と表示されてしまう場合は、エイリアスを設定した状態で、

doskey /macros > 【設定ファイル名】

を実行して設定ファイルを作成するようにすれば、多分改善されますよ。

これがdoskeyコマンドを使ったやり方です。

う~ん……ちょっと微妙かなぁ(--ゞ
ショートカットの内容を書き換えるってことは「cmd.exe」直叩きだと
どうしようもないってことですもんね。

もうちょっとお手軽、かつ汎用的にやりたいんだよなぁ(--ゞ

その後、あれこれ考えて、結局バッチファイルでやることにしました。

まず、dirコマンドを忠実に再現したバッチファイルを作成します。
「忠実に再現」とは言っても、別に難しくはありません。
単に、バッチファイルの中でdirコマンドを実行すれば良いだけです。
出来あがったのがこちらのバッチファイルφ(--)

@echo off

dir %1 %2

このバッチファイルに

ls.bat

という名前を付けます(--)b

最後に「ls.bat」をどこかパスの通っているところ、例えば

%WINDIR%\system32\

に放り込めば完成です。

これで、コマンドプロンプト上で「ls」と打つと「ls.bat」が実行され、
結果として「dir」コマンドが実行されます。

あっ、そうそう。
念の為に補足しておくと「%1 %2」の部分は、バッチファイルのパラメータです。
フォルダを指定した

ls hoge_dir

のような実行と、オプションも指定した

ls /A hoge_dir

のような実行を想定しています。
オプションの有無で実際のパラメータの数は変わりますが、特に問題はありませんでした。

うん、個人的にはバッチファイルの方が好きですね。

セキュリティ的に微妙なところはあるかもしれませんが、手っ取り早さで言えば、
バッチファイルで実現する方が圧倒的に楽だと思います。

と言うわけで、コマンドプロンプトで「ls」コマンドを使えるようにするの、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事