対象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の「コマンドライン履歴の編集」の項を参照していただきたい。
コマンドプロンプトで利用できるコマンドは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コマンドの使い方」 |
サブコマンドを持つ複雑なコマンドの機能概要(主要なもののみ) |
これらのコマンドでは、「help」でコマンド一覧の表示、最後に「exit」か「quit」と入力するか、[Ctrl]+[C]キーを押して終了、となっていることが多い。
同じコマンドを何度も使うなら、あらかじめ「バッチファイル」として用意しておくと簡単に実行できるようになる(ファイル拡張子は.batか.cmd)。タスクスケジューラーと組み合わせれば、定期的に実行するタスクとしても利用できる。
バッチファイル中では、ifやgoto、call、setlocalなど、いくつか特別な制御文が利用できるし、環境変数やバッチパラメーターで文字列処理を行って、パス名を編集するといったこともできる。詳細は以下の記事などを参照のこと。
※環境変数のさまざまな表記・参照方法についてはsetやcallコマンドのヘルプも参照のこと。
コマンドプロンプトで利用できるコマンドは基本的には古いWindows 9x/MeやWindows NT、Windows 2000のころから利用されているものが多く、Windowsの管理用としてもかなり機能不足な感じは否めない。そこでWindowsの管理をするなら、SysInternalsツールをインストールしておくと便利である。
2015年夏にも出荷が開始される予定のWindows 10では、コマンドプロンプトの機能が強化され、少し使いやすくなる。
以前はコマンドプロンプトのウィンドウの内容をコピーしようとしても、矩形形式でしか選択できなかったが、今後は一般のエディターのように、行をまたいで1行のテキストとしてコピーできるようになる。
コマンドプロンプトとその上で動作するバッチファイルは歴史が長いし(MS-DOSの時代からある。次の記事参照)、使い方も簡単なのでWindows OSユーザーにはなじみ深いだろう。だがあまり高度な機能は持っていないため、使いづらいのも事実である。
もう少し高度なファイルや文字列処理、システム管理処理などを行いたければ、コマンドプロンプトに変わる別のシェルやスクリプト実行機能を利用するとよい。現在利用可能なものとしては次のようなものがある。
■WSH(Windows Scriptiog 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の場合)。
Copyright© 1999-2015 Digital Advantage Corp. All Rights Reserved.