Windows
dos
cmd
MS-DOS
DOSプロンプト

今でも使えるDOSコマンド Part2

はじめに

本稿は、今でも使えるDOSコマンドの続編の記事となります。前回の記事では触れなかった内容について説明していきます。

管理者権限のコマンドプロンプト

コマンドプロンプトを管理者として開く手順は以下のとおりです。

  1. コマンドプロンプトを起動する
  2. タスクバーのコマンドプロンプトのアイコンを右クリックする
  3. 右クリックメニュー内の「コマンドプロンプト」をさらに右クリックする
  4. 「管理者として実行」を選択する

コマンドプロンプトが管理者として起動すると、コマンドプロンプトのタイトルバーが「管理者:コマンドプロンプト」という表記に変わり、デフォルトのカレントディレクトリが「C:\WINDOWS\system32>」になります。

DOSコマンドの中でも管理者権限がないと実行できないものがあるので、その場合は管理者権限のコマンドプロンプトで実行することになります。例えば、ARPテーブルを消去する場合などです。

C:\WINDOWS\system32>arp -d *

コマンドヒストリ

コマンドプロンプト上でファンクションキーの「F7」を押すと、それまでに入力したコマンドの履歴を見ることができ、過去に入力したコマンドを再実行することができます。「ALT+F7」を押すと、コマンドの履歴を消去することができます。

代表的なコマンドの紹介

本節では、前回紹介しなかったコマンドについて説明していきます。

attribコマンド

"attribute"(属性)の意味で、ファイルの属性を変更することができます。エクスプローラーでもファイルの属性を変更することはできますが、当該コマンドの方がより多くの属性を変更することができるようになっています。
以下は、ファイル(test.txt)にシステムファイル属性を付与している例です。

C:\Users\yutaka>attrib +s test.txt
C:\Users\yutaka>attrib test.txt
A  S                 C:\Users\yutaka\test.txt

choiceコマンド

ユーザに複数の選択肢からひとつを選択させることができます。バッチファイルで使うと便利です。選択結果は環境変数「ERRORLEVEL」に反映されます。

C:\Users\yutaka>choice /c ync /m "続行しますか(Yes,No,Cancel)"
続行しますか(Yes,No,Cancel) [Y,N,C]?Y
C:\Users\yutaka>echo %errorlevel%
1

clsコマンド

コマンドプロンプトの画面をクリアすることができます。CLSはCLear Screenの略です。

C:\Users\yutaka>cls

colorコマンド

コマンドプロンプトの文字および背景色を変更することができます。

★↓文字を緑色、背景を黒色にする。
C:\Users\yutaka>color 0a
C:\Users\yutaka>ver
Microsoft Windows [Version 10.0.17134.1]

★↓元に戻す。
C:\Users\yutaka>color

copyコマンド

copyコマンドはファイルのコピーを行うもので、単純な操作であればエクスプローラーを使った方が便利ですが、少し変わった操作を行うことができます。

★↓空のファイルを作る
C:\Users\yutaka>copy NUL foo.txt
C:\Users\yutaka>dir foo.txt
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 7834-2B40 です

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

2018/05/06  18:51                 0 foo.txt
               1 個のファイル                   0 バイト
★↓複数のファイルを連結する
C:\Users\yutaka>type foo.txt
aaa
C:\Users\yutaka>copy /b foo.txt+foo.txt+foo.txt bar.txt
foo.txt
foo.txt
foo.txt
        1 個のファイルをコピーしました。
C:\Users\yutaka>type bar.txt
aaa
aaa
aaa

mklinkコマンド

mklinkコマンドを使うことで、シンボリックリンクやハードリンクを作ることができます。ショートカットではありません。WindowsではLinux/UNIXのようにシンボリックリンクが作れないと言われることもありますが、Windows Vista以降であればサポートされています。
当該コマンドの実行には管理者権限が必要です。また、Linuxのlnコマンドと違って、引数の指定が逆になっているので注意しましょう。

C:\Users\yutaka>mklink hoge.txt foo.txt
hoge.txt <<===>> foo.txt のシンボリック リンクが作成されました

C:\Users\yutaka>dir foo.txt hoge.txt
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 7834-2B40 です
 C:\Users\yutaka のディレクトリ
2018/05/06  18:54                 6 foo.txt

 C:\Users\yutaka のディレクトリ
2018/05/06  19:47    <SYMLINK>      hoge.txt [foo.txt]
               2 個のファイル                   6 バイト

pathpingコマンド

pingとtracertの機能を組み合わせたコマンドで、ターゲットホストへのルーティング状況とパケットのロス状況を調べることができます。

C:\Users\yutaka>pathping shell.osdn.jp

shell.osdn.jp [202.221.179.26] へのルートをトレースしています
経由するホップ数は最大 30 です:
  0  DESKTOP-4T7U611 [192.168.1.3]
  1  192.168.1.1
         :
         :
 13  210.173.179.10
 14  osk004bb01.IIJ.Net [58.138.106.121]
 15  tky008bb01.IIJ.Net [58.138.88.45]
 16  tky006gate01b.IIJ.Net [58.138.84.134]
 17  shell.osdn.jp [202.221.179.26]

統計を 425 秒間計算しています...
            ソースからここまで   このノード/リンク
ホップ  RTT    損失/送信 = Pct  損失/送信 = Pct  アドレス
  0                                           DESKTOP-4T7U611 [192.168.1.3]
                                0/ 100 =  0%   |
  1    0ms     0/ 100 =  0%     0/ 100 =  0%  192.168.1.1
                                0/ 100 =  0%   |
         :
         :
 13   32ms     1/ 100 =  1%     1/ 100 =  1%  210.173.179.10
                                0/ 100 =  0%   |
 14   29ms     2/ 100 =  2%     2/ 100 =  2%  osk004bb01.IIJ.Net [58.138.106.121]
                                0/ 100 =  0%   |
 15   37ms     0/ 100 =  0%     0/ 100 =  0%  tky008bb01.IIJ.Net [58.138.88.45]
                                1/ 100 =  1%   |
 16   40ms     2/ 100 =  2%     1/ 100 =  1%  tky006gate01b.IIJ.Net [58.138.84.134]
                                0/ 100 =  0%   |
 17   35ms     1/ 100 =  1%     0/ 100 =  0%  shell.osdn.jp [202.221.179.26]

トレースを完了しました。

robocopyコマンド

リモートホスト間でフォルダ配下をまるごとバックアップを取りたい場合、xcopyコマンドよりもrobocopyコマンドの方が便利です。
"/mir"オプションをつけるとミラーリングモードになり、コピー元のフォルダにあるファイルが削除された場合、コピー先のファイルも消してくれるのですが、誤ってコピー元のファイルが削除された場合にバックアップからの復元ができないので注意しましょう。

C:\Users\yutaka>robocopy src dst /s

timeoutコマンド

指定した秒数を待つことができます。バッチファイルで使うと便利です。

C:\Users\yutaka>timeout /t 3

0 秒待っています。続行するには何かキーを押してください ...

treeコマンド

フォルダの階層構造を視覚的にわかりやすく表示することができます。

D:\Linux\Document>tree
フォルダー パスの一覧:  ボリューム Data
ボリューム シリアル番号は 2437-F993 です
D:.
├─ACPI
├─DELL
├─HP
├─Intelドキュメント
├─Linux device driver programming
│  └─Linux device driver programming
├─MS-DOS
└─NEC

おわりに

DOSコマンドは長い歴史があり、Windowsのバージョンが上がる度に、少しずつコマンドも増えていっています。しばらく使っていないとコマンドも忘れていきますので、時々最先端のコマンド一覧をチェックしてみるのもおすすめです。