連載
» 2015年05月28日 05時00分 UPDATE

Tech TIPS:【総まとめ】Windowsコマンドプロンプトの入門から使いこなしまでの記事

Windowsの管理業務では、まだまだコマンドプロンプトを使った作業も少なくない。本記事では、コマンドプロンプトを使い始めるときや、もっと使いこなしたいとき、さらにはもっと高機能なシェルに移行したいときに便利な記事や情報をまとめておく。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Vista / Windows 7 / Windows 8 / Windows 8.1 / Windows Server 2008 / Windows Server 2008 R2 / Windows Server 2012 / Windows Server 2012 R2


解説

 Windowsの管理業務では、まだまだコマンドプロンプトを使った作業も少なくない。GUIでは面倒な操作でも、CUIなら簡単に、そして何度でもすぐに繰り返して実行できるからだ。本記事では、コマンドプロンプトを便利に使うための記事や情報をまとめておく。今後、コマンドプロンプトに関する新しい情報があれば、随時このページを更新していく。

コマンドプロンプトの使用例 コマンドプロンプトの使用例
コマンドプロンプトには驚くような機能はないが、ファイルをコピーやバックアップしたり、ちょっと操作したりする程度ならまだまだ十分使える。

●コマンドプロンプトの基本的な使い方

 コマンドプロンプトの基本的な使い方や初期設定、代表的なコマンドなどについては以下の記事を参照していただきたい。本記事では、そこでは書き切れなかった情報について補足しておく。

●コマンドプロンプトの起動方法

 コマンドプロンプトを起動するには、単に[スタート]メニューや[スタート]画面(Windows 8/Windows Server 2012以降の場合)から「コマンド プロンプト」を選ぶだけである。だが管理者権限が必要なコマンドを実行したい場合は、コマンドプロンプトをあらかじめ管理者権限で起動しておく必要がある。GUIのアプリケーションのように、管理者権限が必要になった時点でUACによって権限を昇格させる、ということはできない。

 管理者権限で起動するには、[コマンド プロンプト]メニューを右クリックして「管理者として実行」するか、[Ctrl]と[Shift]キーを押しながら[コマンド プロンプト]アイコンをクリックする。次のTIPSも参照のこと。

 なお管理者権限でコマンドプロンプトを起動すると、マップしたドライブにアクセスできないことがある。その場合は次のTIPSの方法で再マップするなどの対策を行うこと。

●コマンドプロンプトを使う場合に最初にすることは?

 Windowsでコマンドプロンプトを使う場合は、最初にコマンドプロンプトの環境を設定しておこう。デフォルトのままでは画面サイズやバッファーサイズ(スクロールバックするためのバッファー)が小さいし、「簡易編集モード」が無効になっていて使いづらいからだ。詳細は冒頭で紹介したTIPS「これだけは覚えておきたい〜」の「コマンドプロンプトのコンソール設定の変更」の項を参照していただきたい。

●コマンドの入力や編集方法は?

 CUI操作が基本のコマンドプロンプトでは、コマンドやパラメーターを全て手で入力しなければならない。だが、直前に実行したコマンドを履歴から呼び出して、編集・再実行したり、ファイル名やフォルダ名を補完したりする程度なら、矢印キーや[Insert][Delete][Home][Tab]などのキー操作で可能である。まずはこれらの操作を覚えよう。詳細は冒頭のTIPSの「コマンドライン履歴の編集」の項を参照していただきたい。

●コマンドの使い方はhelpコマンドで

 コマンドプロンプトで利用できるコマンドはWindows OSのバージョンによって少しずつ異なる。そこでhelpコマンドを使うと、基本的なコマンド一覧を確認できる。単に「help」とだけ指定して実行すると、コマンドプロンプト自身が持つ、いわゆる内部コマンドも含むコマンドの一覧がまとめて表示される。また「help more」や「more /?」のようにすると、個別のコマンドのヘルプが表示される。

 そもそもコマンドプロンプトとは何かとか、コマンドの表記方法、リダイレクトの表記方法といった基本的なことについては、以下のリンク先を参照していただきたい。

 以下、知っておくと便利なコマンドラインの書式や機能などについて、簡単にまとめておく。

記号 意味
^ サーカムフレックス(山形)記号。これに続く文字をエスケープする。例えば「echo abc^&def」とすると、「abc&def」という文字列が表示される(「^」がないとエラーになる)
コマンド <ファイル名 標準入力のリダイレクト。指定したファイルから読み出す
コマンド >ファイル名 標準出力のリダイレクト。指定したファイルへ書き込む
コマンド >>ファイル名 標準出力をリダイレクトして、指定したファイルへ追加する
コマンド 2>ファイル名 コマンドの標準エラー出力を、指定したファイルへ書き出す
コマンド 2>>ファイル名 コマンドの標準エラー出力を、指定したファイルへ追加する
コマンド 2>&1 コマンドの標準エラー出力を、標準出力へ転送する
コマンド >ファイル名 2>&1 コマンドの標準出力と標準エラー出力をまとめて、指定したファイルへ書き出す
コマンド 2>&1 >ファイル名 ×上のコマンドのパラメーター順番違い。これは期待した通りに動作しない
コマンド1 | コマンド2 コマンド1の出力をコマンド2の入力にする(パイプ接続)
コマンド1 | more 表示を1ページずつスクロールさせながら閲覧する
コマンド1 | clip コマンド1の出力をクリップボードへ送る
コマンド1 & コマンド2 連続したコマンド実行。2つ以上のコマンドを1行にまとめることができる
コマンド1 && コマンド2 コマンド1が成功したら(戻り値ERRORLEVELが0なら)、さらにコマンド2を実行する
コマンド1 || コマンド2 コマンド1が失敗したら(戻り値ERRORLEVELが0以外)、コマンド2を実行する
( コマンド列 ) コマンドのグループ化。複数のコマンドの実行結果を1つにまとめてリダイレクトできる。またifやfor文などで、コマンドが複数行に渡る場合にグループ化できる
start コマンド 別ウィンドウを開いてコマンドを実行する
start 文字列など 例えばコマンドとして「http://www.atmarkit.co.jp」や「www.atmarkit.co.jp」と入力してもエラーになるだけだ。そこで「start http://www.atmarkit.co.jp」や「start www.atmarkit.co.jp」とすると、指定したURLがデフォルトのWebブラウザで開かれる。エクスプローラーでファイルやアイコンなどをダブルクリックした場合と同様に、その対象に関連付けられているアプリケーションが起動する
知っておくと便利なコマンドプロンプトの書式

●インタラクティブに使う高機能なコマンド

 コマンドプロンプト上で利用できるコマンドは、Helpコマンドを使うか、「コマンド名 /?」とすれば使い方が表示されるものがほとんどである。だが中には、起動するとコマンド入力待ちのプロンプトを表示して、ユーザーがインタラクティブに使うような複雑で高機能なコマンドもある。以下幾つか例を挙げておく。このようなコマンドでは、helpでコマンド一覧の表示、最後にexitかquit、[Ctrl]+[C]で終了、となっていることが多い。

コマンド 機能
diskpart ディスク管理ツール。ディスクのパーティションを作成したり、ボリュームをフォーマットしたりする
・関連TIPS「Windowsのdiskpartコマンドでディスクのパーティションを操作する
netsh ネットワーク関連のコンポーネントの管理・設定ツール。例えばWindowsファイアウォールの細かい設定や、ネットワークインタフェースやネットワークプロトコルの設定などを行う
・関連TIPS「netshコマンドでTCP/IPのパラメータを設定する
wmic WMI(Windows管理インタフェース)の制御を行う。Windowsの設定を行ったり、リモートから管理したりできる。ヘルプは /? で表示される
・関連TIPS「WindowsでWMIとwmicコマンドを使ってシステムを管理する(基本編)
ntdsutil Active Directoryディレクトリ関連の管理ツール
・関連TIPS「Active DirectoryのFSMO役割を担当するサーバを調査する(コマンドプロンプト編)
nslookup DNSサーバへの問い合わせツール
・関連TIPS「nslookupの基本的な使い方(イントラネット編)
fsutil ファイルシステム関連のシステムパラメーターの設定ツール。注)これはインタラクティブに使うツールではない
・関連TIPS「巨大なサイズのファイルを簡単に作る方法
net ユーザー管理やファイル共有サービス関連の設定ツール。Windows NTのころまでのドメインネットワークサービスに対応したコマンドであり、Active Directoryで拡張されたスキーマや属性は制御できない。注)これはインタラクティブに使うツールではない
・関連TIPS「Windowsのnetコマンドの使い方
サブコマンドを持つ複雑なコマンドの機能概要(主要なもののみ)

●コマンドをスクリプトとして実行するには?

 同じコマンドを何度も使うなら、あらかじめ「バッチファイル」として用意しておくと簡単に実行できるようになる(ファイル拡張子は.batか.cmd)。タスクスケジューラと組み合わせれば、定期的に実行するタスクとしても利用できる。

 バッチファイル中では、ifやgoto、call、setlocalなど、幾つか特別な制御文が利用できるし、環境変数やバッチパラメーターで文字列処理を行って、パス名を編集するといったこともできる。詳細は以下の記事などを参照のこと。

環境変数のさまざまな表記・参照方法についてはsetやcallコマンドのヘルプも参照のこと。

●コマンドプロンプトの開始時に特定のコマンドを実行させる

 コマンドプロンプトの開始時に、ある特定の決まったコマンドやバッチファイルなどを実行させたいことがある。この場合は、「cmd /k <バッチファイル>」のようにしてコマンドプロンプトを起動するとよい。こうすると、バッチファイルの実行後にユーザーの入力待ちになる。詳細は次の記事を参照していただきたい。

●システム管理業務にはSysInternalsツールが便利

 コマンドプロンプトで利用できるコマンドは基本的には古いWindows 9x/MeやWindows NT、Windows 2000のころから利用されているものが多く、Windowsの管理用としてもかなり機能不足な感じは否めない。そこでWindowsの管理をするなら、SysInternalsツールをインストールしておくと便利である。

●Windows 10ではコマンドプロンプトが強化される

 2015年夏にも出荷が開始される予定のWindows 10では、コマンドプロンプトの機能が強化され、少し使いやすくなる。

Windows 10ではコマンドプロンプトが使いやすくなる Windows 10ではコマンドプロンプトが使いやすくなる
これはWindows 10(プレビュー版)のコマンドプロンプトの設定画面。赤枠の部分が、追加された新機能(の一部)をオン/オフするための設定項目だ。詳細は以下のリンク先参照。

 以前はコマンドプロンプトのウィンドウの内容をコピーしようとしても、長方形でしか選択できなかったが、今後は一般のエディターのように、行をまたいで1行のテキストとしてコピーできるようになる。

●コマンドプロンプトだけでは機能が不足する場合は?

 コマンドプロンプトとその上で動作するバッチファイルは歴史が長いし(MS-DOSの時代からある。次の記事参照)、使い方も簡単なのでWindows OSユーザーにはなじみ深いだろう。だがあまり高度な機能は持っていないため、使いづらいのも事実である。

 もう少し高度なファイルや文字列処理、システム管理処理などを行いたければ、コマンドプロンプトに変わる別のシェルやスクリプト実行機能を利用するとよい。現在利用可能なものとしては次のようなものがある。

■WSH(Windows Scripting Host)
 WSHは、VBScriptやJScriptを使ったスクリプト実行環境である。バッチコマンドよりもはるかに高度な機能が利用できるだけでなく、バッチ的にもGUI的にも利用できる。Windows OSの幾つかのコマンドはこのWSHのスクリプトで実装されている(ライセンス認証を行うslmgr.vbsコマンドなど)。

 ただし現在ではWSHはその役割をほぼ終え、次の「PowerShell」に移行していると言ってよい。

■Windows PowerShell
 Windows PowerShellは、.NET Frameworkベースの新しいシェル環境である。現在のWindows OSでもまだWSHは利用できるものの、基本的にはWindows PowerShellが現在のWindowsにおけるメインの管理基盤となっている。Windowsのほとんどの機能や設定などはPowerShellで制御できるようになっており、例えばコマンドラインインタフェースしか持たないWindowsのServer Coreエディションでは、このPowerShellを使って管理することが想定されている。

■UNIX互換シェル
 WSHやPowerShellはWindowsの管理には十分な半面、Windows以外の環境では利用できない。UNIXやLinuxではbashなどのシェルを使うのが普通であり、これらの操作に慣れたユーザーのために、Windows OS上でも幾つかUNIX互換環境を実現するためのツールがある。ただし、いずれも日本語がうまく扱えないなどの問題があるので積極的にはお勧めできないのが現状だ。どうしてもUNIX互換のツールが利用したければインストールするとよい。

○「SUA」を利用する
 SUA(Subsystem for UNIX-Based Application)は、Windows OSの上で利用できるPOSIX互換サブシステム環境と、そこにインストールして利用できるUNIX互換のツール集である。Windows Vista/Windows Server 2008からWindows 8/Windows Server 2012までのWindows OSで利用できる。Windows 8.1やWindows Server 2012 R2では廃止され、利用できなくなった。

Windows 8/Windows Server 2012の場合は「Utilities and SDK for Subsystem for UNIX-based Applications in Windows 8 and Windows Server 2012」をダウンロードして追加インストールすること。

○「Git for Windows」を利用する
 SUA(やその元になったSFU)とは別にUNIX互換環境を実現しようとしているソフトウェアが幾つか存在し、MSYS(minimal system)もその1つである。ただ、オリジナルのMSYSはほぼ開発が止まっているので、代わりに「Git for Windows」を利用するとよいだろう。これはMSYSに最新のセキュリティパッチを適用した上で、Windows向けのGitツールを追加したものである。Gitコマンドは使わず、UNIX互換ツールの部分だけ使えばよい。ただしデフォルトのままでは、例えばlsコマンドで日本語ファイル名が表示できないなど、日本語環境ではかなり制約がある(単なる「ls」ではなく、「ls --show-control-chars」とすれば表示できる。gif for Windows 1.9.5の場合)。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。