Windowsのコマンド

Windowsではマウスやタッチパネルを使って、アイコンやボタンなどを操作するGUIが基本になっている。
GUIはコンピューター内の状態や情報が、目に見える形で表示されるため、比較的簡単に操作が出来る。

しかし、大量のファイルをコピーしたり名前を変えたりする場合、GUI上から手作業でやるよりも、コマンドプロンプト(CUI)からコマンドを使った方が効率が良い。

Windowsのコマンドプロンプトで、自分が良く使うコマンドをメモ書きしておく。


ディレクトリ(フォルダ)・ファイル系

基本的に、フォルダとディレクトリは同じ意味(厳密に言えば少し違うが、パソコンを操作するうえで差異はない)。
GUIでは「フォルダ」、CUIでは「ディレクトリ」と呼ぶことが多い。
以降のコマンドでは省略しているが、ファイル名やディレクトリ名にスペース(空白)が含まれている場合、パスを「”(ダブルクォーテーション)」で囲う必要がある。

# カレントディレクトリを表示
cd

# カレントディレクトリを移動
# /d オプションでドライブも含めて移動
cd /d D:\work

# 1つ上のディレクトリに移動
cd ..


# 履歴を残しながら、カレントディレクトリを移動
# UNCパス(\\ホスト名\~)も指定可能で、
# 実行した際にネットワークドライブが割り当たる
pushd D:\work
pushd \\host1\data

# 1履歴前のディレクトリに戻る
popd


# ディレクトリを作成
# 中間のディレクトリが無い場合、同時に作成される
mkdir D:\work\test\aaa\bbb\ccc


# ディレクトリを削除
# /s オプションで中にファイルがある場合でも削除する
# /q オプションでファイル削除時の確認メッセージ無し
rmdir /s /q D:\work\test


# ディレクトリ内にあるファイル、サブディレクトリを表示
# パスを指定しない場合、カレントディレクトリが基準になる
# /s オプションでサブディレクトリ内のファイル、ディレクトリも表示
dir /s D:\work\test


# ディレクトリ構造をツリー形式で表示
# パスを指定しない場合、カレントディレクトリが基準になる
# /f オプションでファイルも含めて表示
tree /f D:\work\test


# ファイル名からファイルの格納場所を検索
# ワイルドカードでファイル名のあいまい検索
ができる
# /r オプションで検索対象のディレクトリを指定する
# /t オプションでファイルのサイズ、更新日時も表示する
where /r D:\work /t *.txt


# シンボリックリンクを作成
# シンボリックリンクとは、ショートカットに近いもの(厳密には別物)
# 同じコマンドでハードリンクも作成できるが、ほとんど使わないので割愛する
# このコマンドを実行する際には、
# 管理者権限でコマンドプロンプトを起動しておく必要がある
# /d オプションでディレクトリに対するシンボリックリンクを作成する
mklink test1_symlink D:\work\testdir\test1.txt
mklink /d testdir_symlink D:\work\testdir


# ファイル名を変更
# 同じコマンドで、ディレクトリ名も変更できる
ren test_before.txt test_after.txt


# ファイルを別ディレクトリに移動
# ワイルドカードで複数ファイルを移動できる
# /y オプションで上書き確認を行わない
move test1.txt dirtest1
move /y test*.txt dirtest1


# ファイルを削除
# ワイルドカードで複数ファイルを削除対象にできる
# /f オプションで読み取り専用属性のファイルも削除
# /q オプションで複数ファイル削除時の確認メッセージ無し
del test1.txt
del /f /q test*.txt


# ファイルをコピー
# /y オプションで上書き確認を行わない
copy /y test1.txt test1_copy.txt

# 複数ファイルを別ディレクトリにコピー
copy /y *.txt D:\work\test\aaa


# ディレクトリ単位でコピー
# /c オプションでエラーが発生しても無視して続行する
# /e オプションでサブディレクトリもコピーする
# /i オプションでコピー先のディレクトリが存在しない場合は作成する
# /r オプションで読み取り専用ファイルも上書きする
# /y オプションで上書き確認を行わない
xcopy /c /e /i /r /y dirtest1 dirtest1_copy


# ディレクトリ・ファイルの同期
# ファイルのコピーはcopyコマンドやxcopyコマンドでも出来るが、
# ファイルの同期やバックアップが目的ならrobocopyコマンドの方が適している
# ネットワーク上のディレクトリも指定できる
# 
# /mir オプションでコピー元とコピー先を同期させる
# コピー元にだけ存在するファイルはコピーされる
# コピー元に存在しない(コピー先にだけ存在する)ファイルは削除される
# コピー元とコピー先で同じファイルが存在していて、
# ファイルのサイズ・更新日時が異なる場合、上書きされる
# コピー元のファイルが古い場合でも上書きされるので、注意が必要
# 
# /dcopy オプションでコピーするディレクトリの情報を指定
# D:データ、A:属性、T:タイムスタンプ
# 
# /copy オプションでコピーするファイルの情報を指定
# D:データ、A:属性、T:タイムスタンプ、
# S:セキュリティ(アクセス許可情報)、O:所有者情報、U:監査情報
# /copyall オプションですべての情報をコピー(/copy:DATSOUと同じ)
# 
# /log オプションでコピー結果をログファイル出力
# 指定しない場合、コマンドプロンプト画面に表示される
# 
# /np オプションでコピーの進捗状況を表示しない
# 進捗率が表示されていると、ログが分かりにくくなるため、
# ログ出力を行う場合には指定した方が良い
# 
# /r オプションでコピー失敗時のリトライ回数を指定する
# /w オプションでリトライする際の待機時間(秒数)を指定する
# いずれもデフォルト値だと大き過ぎるので、調整する
# 
# /l オプションでコピー実行をシミュレーション
# コピーや削除などファイルの更新をせずに、実行結果を確認できる
# コピー元やコピー先を間違えて、ファイルが消失してしまう事故を
# 防止するため、実行する前に確認する癖をつけた方が良い
# 
robocopy /mir /dcopy:DAT /copy:DAT ^
/log:D:\work\copytest.log /np /r:3 /w:3 /l ^
D:\work\testdir D:\work\testdir_copy

robocopy /mir /dcopy:DAT /copy:DAT ^
/log:D:\work\copytest.log /np /r:3 /w:3 /l ^
D:\work\testdir \\host1\Share1\testdir_copy

テキストファイル系

# ファイルの内容を表示
# ファイルは複数指定することも出来る
type test1.txt
type *.txt


# 長いテキストファイルの内容を1ページずつ表示
more test1.txt


# ファイル内に含まれる文字列を検索する
# /i オプションで大文字小文字を区別しない
# /n オプションで行番号を表示する
# /s オプションでサブディレクトリも含めて検索する
findstr /i /n /s "test" *.txt


# ファイルの内容を比較
# /c オプションで大文字小文字を区別しない
# /n オプションで行番号を表示する
# /w オプションで連続したタブやスペースを1つのスペースとして比較する
fc /c /n /w test1.txt test2.txt


# ファイルの内容をソートして表示
# /o オプションでソート結果を指定したファイルに出力する
# /r オプションで降順にソートする
sort /r test1.txt
sort /o test1_sort.txt test1.txt

ネットワーク系

通信相手側の設定によっては、正しい結果が返ってこないケースもある。

# IPアドレスなどの情報を表示
# /all オプションで詳細な設定を表示する
ipconfig /all


# 指定したIPアドレスかホスト名まで、ネットワークがつながっているか確認
ping 192.168.1.1
ping host1


# ドメイン名からIPアドレス、またはIPアドレスからドメイン名を取得
nslookup google.com
nslookup 192.168.1.1


# ネットワークの経路を表示
tracert google.com
tracert 192.168.1.1


# 通信中のネットワーク接続を表示
# /a オプションで待ち受けのポートも表示される
netstat /a


# ローカルユーザの一覧を表示
net user

# ローカルユーザの詳細を表示する
net user user1


# 共有しているディレクトリの一覧を表示
net share

# 共有しているディレクトリの詳細を確認
# このコマンドを実行する際には、
# 管理者権限でコマンドプロンプトを起動しておく必要がある
net share Share1


# ネットワークドライブの割り当て一覧を確認
net use

# ネットワークドライブの詳細を確認
net use Z:

# 共有ディレクトリをネットワークドライブに割り当てる
net use X: ¥¥host1¥Share1

# ネットワークドライブの割り当てを削除する
net use X: /DELETE

その他

# ヘルプを表示
# 指定したコマンドのオプションが表示される
# 後ろのコマンド部分を省略すると主要なコマンドが一覧表示される
help
help dir
dir /?


# コマンドプロンプトの色を設定
# 1桁目が背景色、2桁目が文字色の16進数
# 「1F」なら、背景色が「青」で文字色が「輝く白」
# 指定出来る色はヘルプを参照
# 色を指定しないと初期状態に戻る
color
color 1F
color /?


# 実行したコマンドの履歴を表示
doskey /h


# 他のコマンドの実行結果などを画面からクリア
cls


# 仮想ドライブの割り当て
subst Z: D:\work\testdir

# 仮想ドライブの割り当てを削除
subst /d Z:


# 別ウィンドウでコマンドやプログラムを実行
# /wait オプションで実行したプログラムが終了するまで待機する
start /wait dir
start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

タイトルとURLをコピーしました