【総まとめ】Windows 10コマンドプロンプトの入門から使いこなしまでの記事:Tech TIPS
Windows OSの管理業務では、まだまだコマンドプロンプトを使った作業が少なくない。本記事では、コマンドプロンプトを使い始めるときや、もっと使いこなしたいとき、さらにはもっと高機能なシェルに移行したいときに便利な記事や情報をまとめておく。
対象:Windows 10、Windows Server 2016/Windows Server 2019/Windows Server 2022
Windows OSの管理業務では、まだまだ「コマンドプロンプト」を使った作業が少なくない。GUI(グラフィカルユーザーインタフェース)では面倒な操作でも、コマンドプロンプト上でコマンドを実行するCUI(キャラクタユーザーインタフェース)なら簡単に、そして何度でもすぐに繰り返して実行できるからだ。本記事では、主にWindows 10のコマンドプロンプトを便利に使うための記事や情報をまとめておく。
なお、本稿では旧来のコマンドプロンプト(cmd.exe)を対象に解説していく。Windows 10では「Windowsターミナル」からコマンドプロンプトを利用できるし、Windows 11バージョン22H2以降ではデフォルトでWindowsターミナルが旧来のコマンドプロンプトの代わりに起動する。ただ、Windowsターミナル上のコマンドプロンプトは、旧来のコマンドプロンプトとは挙動や設定などが大きく異なるので、今後、別の記事で説明したい。
コマンドプロンプトの基本的な使い方
コマンドプロンプトの基本的な使い方や初期設定、代表的なコマンドなどについては以下の記事を参照していただきたい。本記事では、そこでは書き切れなかった情報について補足しておく。
- Tech TIPS「これだけは覚えておきたいWindowsのコマンドプロンプトの使い方」
そもそもコマンドプロンプトとは何か、といったことについては、以下の古い記事も参考になるだろう。
コマンドプロンプトを起動するには
コマンドプロンプトを起動するには、タスクバーの検索機能で「cmd」と入力し、検索結果の「コマンドプロンプト」をクリックすればよい。
ただ、上記の手順を毎回繰り返すのは面倒なので、もしコマンドプロンプトをよく利用するなら、以下のTech TIPSのようにして、もっと素早く起動できるようにした方がよい。
- Tech TIPS「コマンドプロンプトを素早く起動/実行する方法【Windows 11/10」
起動に関して注意が必要なのは、管理者権限が必要なコマンドを実行したい場合、コマンドプロンプトをあらかじめ管理者権限で起動しなければならない、という点だ。GUIのアプリケーションのように、管理者権限が必要になった時点でUAC(ユーザーアクセス制御)によって権限を昇格させる、ということはできない。
管理者権限で起動するには、前述のTech TIPSで説明しているように、[コマンド プロンプト]を右クリックして表示されるメニューで「管理者として実行」を選ぶか、[Ctrl]と[Shift]キーを押しながら[コマンド プロンプト]アイコンをクリックする。
管理者権限でコマンドプロンプトを起動すると、マップしたドライブにアクセスできないことがある。その場合は次のTIPSの方法で再マップするなどの対策を行うこと。
- Tech TIPS「管理者権限のあるコマンドプロンプトからマップしたドライブにアクセスする」
コマンドプロンプトを使い始める前に設定しておきたいこと
Windows OSでコマンドプロンプトを使う場合は、最初にコマンドプロンプトの環境を設定しておこう。デフォルトのままではウィンドウのサイズが小さいし、位置もよくないことがあるからだ。
デフォルトの設定を変更してよいなら、起動したコマンドプロンプトのウィンドウ左上隅をクリックして表示されるメニューで[既定値]をクリックし、表示されたダイアログの[レイアウト]タブでウィンドウのサイズや位置を変更する。以後は、設定したサイズと位置でコマンドプロンプトが起動するはずだ。
また、[画面の色]タブで文字色をもっと明るくして文字を見やすくする、といった色の調整もできる。
その他の設定については、冒頭で紹介したTech TIPS「これだけは覚えておきたい〜」の「コマンドプロンプトのコンソール設定の変更」の項を参照していただきたい。
コマンドの入力履歴やその編集機能を活用しよう
CUI操作が基本のコマンドプロンプトでは、コマンドやパラメーターを全て手で入力しなければならない。しかし、直前に実行したコマンドを履歴から呼び出して、編集・再実行したり、ファイル名やフォルダ名を補完したりする程度なら、矢印キーや[Insert][Delete][Home][Tab]などのキー操作で可能である。まずはこれらの操作を覚えよう。
操作方法については、冒頭で紹介したTech TIPS「これだけは覚えておきたい〜」の「コマンドライン履歴の編集」の項を参照していただきたい。
各コマンドの使い方はhelpコマンドで確認できる
コマンドプロンプトで利用できるコマンドはWindows OSのバージョンによって少しずつ異なる。そこで「help」コマンドを使うと、基本的なコマンド一覧を確認できる。
単に「help」とだけ指定して実行すると、コマンドプロンプト自身が持つ、いわゆる内部コマンドも含むコマンドの一覧がまとめて表示される。また「help more」や「more /?」のようにすると、個別のコマンドのヘルプが表示される。
知っておくと便利なコマンドラインの「リダイレクト」「パイプ」
以下、知っておくと便利なコマンドラインの書式や機能などについて、簡単にまとめておく。「リダイレクト」「パイプ」といった機能は使い慣れると大変便利なので、ぜひ覚えておきたい。
記号 | 意味 |
---|---|
^ | サーカムフレックス(山形)記号。これに続く文字をエスケープする。例えば「echo abc^&def」とすると、「abc&def」という文字列が表示される(「^」がないとエラーになる) |
コマンド <ファイル名 | 標準入力のリダイレクト。指定したファイルから読み出す |
コマンド >ファイル名 | 標準出力のリダイレクト。指定したファイルへ書き込む |
コマンド >>ファイル名 | 標準出力をリダイレクトして、指定したファイルへ追加する |
コマンド 2>ファイル名 | コマンドの標準エラー出力を、指定したファイルへ書き出す |
コマンド 2>>ファイル名 | コマンドの標準エラー出力を、指定したファイルへ追加する |
コマンド 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 文字列など | 例えばコマンドとして「https://atmarkit.itmedia.co.jp/」や「atmarkit.itmedia.co.jp」と入力してもエラーになるだけだ。そこで「start https://atmarkit.itmedia.co.jp/」や「start atmarkit.itmedia.co.jp」とすると、指定したURLがデフォルトのWebブラウザで開かれる。エクスプローラーでファイルやアイコンなどをダブルクリックした場合と同様に、その対象に関連付けられているアプリケーションが起動する |
知っておくと便利なコマンドプロンプトの書式 |
対話的に使う高機能なコマンドもある
コマンドプロンプト上で利用できるコマンドは、前述の「help」コマンドを使うか、「<コマンド名> /?」とすれば使い方が表示されるものがほとんどである。
しかし中には、起動するとコマンド入力待ちのプロンプトを表示して、ユーザーが対話的(インタラクティブ)に使うような複雑で高機能なコマンドもある。以下に幾つか例を挙げておく。
コマンド | 機能 |
---|---|
diskpart | ディスク管理ツール。ディスクのパーティションを作成したり、ボリュームをフォーマットしたりする。Tech TIPS「Windowsのdiskpartコマンドでディスクのパーティションを操作する」参照 |
netsh | ネットワーク関連のコンポーネントの管理・設定ツール。例えばWindowsファイアウォールの細かい設定や、ネットワークインタフェースやネットワークプロトコルの設定などを行う。Tech TIPS「netshコマンドでTCP/IPのパラメータを設定する」参照 |
wmic | WMI(Windows管理インタフェース)の制御を行う。Windowsの設定を行ったり、リモートから管理したりできる。ヘルプは /? で表示される。Tech TIPS「WindowsでWMIとwmicコマンドを使ってシステムを管理する(基本編)」参照 |
ntdsutil | Active Directoryディレクトリ関連の管理ツール。Tech TIPS「Active DirectoryのFSMO役割を担当するサーバを調査する(コマンドプロンプト編)」参照 |
nslookup | DNSサーバへの問い合わせツール。Tech TIPS「nslookupの基本的な使い方(イントラネット編)」参照 |
fsutil | ファイルシステム関連のシステムパラメーターの設定ツール。注)これはインタラクティブに使うツールではない。Tech TIPS「巨大なサイズのファイルを簡単に作る方法」参照 |
サブコマンドを持つ複雑なコマンドの機能概要(主要なもののみ) |
このようなコマンドでは、「help」でサブコマンド一覧の表示、また「exit」「quit」と入力するか[Ctrl]+[C]キーを押して終了、となっていることが多い。
決まったコマンド実行手順を繰り返すなら「バッチファイル」を活用しよう
同じコマンドを何度も使うなら、そのコマンドラインをテキストで記述した「バッチファイル」を用意しておくと簡単に実行できるようになる(ファイル拡張子は「.bat」「.cmd」)。タスクスケジューラと組み合わせれば、定期的に実行するタスクとしても利用できる。
バッチファイル中では、何らかの条件によって実行するコマンドを変えたり、コマンド実行の順序を変えたりできる。またコマンドラインで渡す引数(バッチパラメーター)や環境変数で文字列処理を行って、パス名を編集するといったこともできる。詳細は以下の記事を参照していただきたい。
- Tech TIPS「バッチファイルの基本的な使い方」
- Tech TIPS「バッチファイル中で日付をファイル名に使用する」
- Tech TIPS「OSの種類によってバッチファイルの処理を切り替える方法」
- コマンドライン徹底活用 第3回「スクリプト入門」
バッチファイルから環境変数を参照/操作する方法については、「set /?」「call /?」で表示されるヘルプも参考になる。
コマンドプロンプトの開始時に特定のコマンドを実行させるには
コマンドプロンプトの開始時に、ある特定の決まったコマンドやバッチファイルなどを実行させるには、「cmd /k <バッチファイル>」のようにしてコマンドプロンプトを起動するとよい。こうすると、バッチファイルの実行後にユーザーの入力待ちになる。詳細は次の記事を参照していただきたい。
- Tech TIPS「コマンドプロンプトの起動時にバッチファイルを自動的に実行させる」
システム管理業務にはSysinternalsツールが便利
コマンドプロンプトで利用できるWindows OS標準のコマンドは、基本的にはWindows 2000以前から利用されている古いものが多い。そのため、Windows OSの管理用としてもかなり機能不足な感は否めない。
そこでWindows OSの管理をするなら、「Sysinternals」ツールをインストールしておくと便利である。
- Sysinternals(Microsoft Learn)
Sysinternalsは多数の便利なソフトウェアツールを集めたものだ。各ツールの使い方については、以下のTech TIPSなどを参照していただきたい。
- Tech TIPS「Sysinternalsのautorunsツールで自動起動するプログラムを調査する」
- Tech TIPS「streamsコマンドでNTFSの代替データストリーム情報を表示/削除する」
- Server&Storageフォーラム連載「ITプロ必携の超便利システム管理ツール集」
コマンドプロンプトだけでは機能が不足する場合は?
コマンドプロンプトとその上で動作するバッチファイルは、何十年という長い歴史を持つ。古くからのWindows OSユーザーにとってはなじみ深いだろう。
しかし、その古さ故に高度な機能は持っていないため、ちょっと複雑な処理をしようとすると途端に使いにくく感じるのも事実である。
もう少し高度なファイル/文字列処理、システム管理処理などを行いたければ、コマンドプロンプトに代わる別のシェルやスクリプト実行機能を利用するとよい。以下に主要なものを紹介しよう。
●PowerShell
「PowerShell」は.NETベースのシェル環境で、スクリプト言語や構成管理のためのフレームワークを備えている。Windows OSに標準装備されている他、LinuxやmacOSでもインストールして利用できる。Windows 10やWindows Server 2016以降ではPowerShell 5.1が標準で利用できる。最新のPowerShell 7.xをインストールすることも可能だ。
Windows OSのほとんどの機能や設定などはPowerShellで制御できるようになっている。例えばコマンドラインインタフェースしか持たないWindows Serverの「Server Core」オプションでは、このPowerShellを使って管理することが想定されている(コマンドラインやリモート管理ツールでも管理は可能)。
Windows OSのシステム管理をなるべく自動化したい、といった用途ならPowerShellが候補の筆頭に挙がるだろう。
●Windows Subsystem for Linux(WSL)
Windows 10/11には、「Windows Subsystem for Linux(WSL)」という機能により、無償でLinux OS環境をセットアップできる。例えばUbuntuのようなLinuxディストリビューションをWindows OS上で実行し、Bashのようなシェル環境からLinuxの各種コマンドやユーティリティが使える。
BashからWindows OSの「C:」「D:」といったドライブのファイルシステムにアクセスできるので、BashのシェルスクリプトでC:\Usersにあるドキュメントを自動処理する、といったことも可能だ。
Linuxに慣れている、あるいはすでにLinuxを利用していて、Windows OSの管理や運用などをなるべくLinuxに合わせたい、といった用途ならWSLが便利だろう。
●Git BashやMSYS2
Linux/UNIX環境に慣れているけど、何らかの理由からWSLが利用できない場合は、「Git Bash」「MSYS2」といった別のLinux/UNIX互換環境が候補に挙げられる。Git BashはGit for Windowsに同梱されている。またMSYS2は単体で配布されている他、Linux/UNIXからWindows OSへ移植されたソフトウェアに同梱されていることがよくある。
- Git for Windows[英語]
- MSYS2[英語]
●WSH(Windows Scripting Host)
「WSH(Windows Scripting Host)」は、VBScriptやJScriptを使ったスクリプト実行環境である。バッチコマンドよりもはるかに高度な機能が利用できるだけでなく、バッチ的にもGUI的にも利用できる。Windows OSの幾つかのコマンドはこのWSHのスクリプトで実装されている(ライセンス認証を行うslmgr.vbsコマンドなど)。
ただし現在ではWSHはその役割をほぼ終え、前述の「PowerShell」に移行していると言ってよい。
■関連リンク
- Command shell overview[英語](Microsoft Learn)
- Using command redirection operators[英語](Microsoft Learn)
- Server Core サーバーの管理(Microsoft Learn)
■この記事と関連性の高い別の記事
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
- バッチファイルの基本的な使い方(TIPS)
- コマンドプロンプトの起動時にバッチファイルを自動的に実行させる(TIPS)
- whichコマンドを作る(TIPS)
- sconfigコマンドでServer Coreインストールの初期設定を行う(TIPS)
■更新履歴
【2023/05/10】Windows 10に対応しました。
【2015/05/28】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.