\\ Amazon 最新リリース製品はこちらへ //

【保存版】バッチファイルで使えるコマンド一覧と活用方法

バッチファイルは、Windows環境での自動化やタスクの効率化に欠かせないツールです。日々の作業をシンプルにし、繰り返し行う操作を一瞬で実行できる点が魅力です。

この記事では、バッチファイルの基礎知識から、使えるコマンドの一覧、さらに実用的な活用方法までを幅広くカバーします。

これを読めば、基本的なバッチファイルの作成方法から、コマンドの応用まで、初心者でもすぐに実践できるようになるでしょう。バッチファイルの力を最大限に引き出し、日々の業務効率を高めるために、ぜひ参考にしてください。

バッチファイルの基本

バッチファイルとは何か

バッチファイルは、Windowsのコマンドを一括で実行するためのスクリプトです。日常的なタスクを自動化し、作業効率を高めることができます。

基本的な作成方法

バッチファイルの作成方法について詳しく知りたい方は、「初心者向けガイド:バッチファイルの作成方法と使用時の注意点【2024年最新版】」をご覧ください。このガイドでは、ステップバイステップでバッチファイルの作成方法や、使用時の注意点をわかりやすく解説しています。

実行方法

バッチファイルの実行方法については、右クリックから管理者権限で実行する方法や、ショートカットを使った便利な実行方法なども紹介しています。詳しくは上記リンクの記事内でご確認いただけます。

コマンド一覧

バッチファイルで使えるコマンド一覧

コマンド説明
ARPIPアドレスとMACアドレスの対応を表示または変更
ASSOCファイル拡張子とファイルタイプの関連付けを表示または変更
ATTRIBファイルやディレクトリの属性を表示または変更
bcdbootブート構成データを作成または修復
cdカレントディレクトリを表示または変更
chkdskディスクの状態をチェックし、エラーを修復
chkntfsディスクの自動チェック設定を表示または変更
clipコマンドの出力をクリップボードにコピー
cls画面をクリア
cmdkey資格情報を管理
colorコンソールの文字色と背景色を変更
compファイルの比較
compactファイルやディレクトリの圧縮設定を表示または変更
copyファイルをコピー
date日付を表示または設定
defragディスクのデフラグメンテーションを実行
delファイルを削除
dirディレクトリの内容を表示
diskpartディスクパーティションを管理
dispdiagディスプレイの診断情報を収集
echoメッセージを表示、またはコマンドエコーの設定
endlocal環境変数のローカル化を終了
exitコマンドプロンプトを終了
fcファイルを比較し、違いを表示
findファイル内から文字列を検索
findstr複雑なパターンで文字列を検索
for繰り返し処理を実行
forfilesファイルに対してバッチ処理を実行
formatディスクをフォーマット
ftpFTP接続を行う
ftypeファイルタイプに関連付けられたコマンドを表示または変更
getmacMACアドレスを表示
gotoバッチファイル内の指定したラベルにジャンプ
gpresultグループポリシーの適用結果を表示
gpupdateグループポリシーを更新
hostnameコンピュータ名を表示
icaclsファイルやディレクトリのアクセス権を表示または変更
if条件分岐を実行
ipconfigネットワーク設定を表示
ipconfig /all詳細なネットワーク設定を表示
ipconfig /displaydnsDNSキャッシュを表示
ipconfig /flushdnsDNSキャッシュをクリア
ipconfig /registerdnsDNSを再登録
ipconfig /releaseIPアドレスを解放
ipconfig /renewIPアドレスを再取得
irftp赤外線ファイル転送を起動
labelボリュームラベルを表示または設定
logoffユーザーをログオフ
mdディレクトリを作成
mkdirディレクトリを作成
mklinkシンボリックリンクまたはハードリンクを作成
mmcMicrosoft管理コンソールを起動
modeデバイスの設定を表示または変更
moreテキストを一画面ずつ表示
moveファイルを移動
msgメッセージをユーザーに送信
msiexecWindows Installerを操作
msinfo32システム情報を表示
mstscリモートデスクトップ接続を起動
nbtstatNetBIOS over TCP/IPの統計を表示
netshネットワーク設定を表示または変更
netstatネットワーク接続を表示
nfsadminNFSサービスを管理
nfsshareNFS共有を設定
nfsstatNFSの統計情報を表示
nlbmgrネットワーク負荷分散マネージャを起動
nslookupDNS情報を表示
pathコマンド検索パスを表示または設定
pause処理を一時停止
perfmonパフォーマンスモニタを起動
ping接続先との通信を確認
pnputilプラグアンドプレイデバイスドライバを管理
printテキストファイルを印刷
prnjobsプリンタジョブを管理
prnmngrプリンタを管理
prnportプリンタポートを管理
prnqctlプリンタキューを制御
promptコマンドプロンプトの表示を変更
pushdディレクトリをスタックに保存し、移動
qappsrv利用可能なリモートデスクトップサーバーを表示
qprocessプロセス情報を表示
query processプロセス情報を表示
query sessionセッション情報を表示
query userユーザー情報を表示
quserユーザー情報を表示
rdディレクトリを削除
regレジストリを操作
reg addレジストリキーまたは値を追加
reg compareレジストリキーまたは値を比較
reg deleteレジストリキーまたは値を削除
reg exportレジストリキーをエクスポート
reginiレジストリ権限を変更
remコメント行を記述
renファイル名を変更
replaceファイルを置換
rmdirディレクトリを削除
robocopyファイルやディレクトリを高度にコピー
rpcinfoRPCサービス情報を表示
rpcpingRPCサーバーとの接続をテスト
rundll32DLL内の関数を実行
rundll32 printui.dll,PrintUIEntryプリンタ設定を操作
scサービスを管理
schtasksタスクスケジューラを操作
schtasks /change既存のタスクを変更
schtasks /create新しいタスクを作成
schtasks /deleteタスクを削除
schtasks /endタスクを終了
schtasks /queryタスクを一覧表示
schtasks /runタスクを即時実行
select diskディスクを選択(diskpartで使用)
select partitionパーティションを選択(diskpartで使用)
select vdisk仮想ディスクを選択(diskpartで使用)
set環境変数を表示または設定
sfcシステムファイルを検証
shutdownシステムをシャットダウンまたは再起動
sort入力をソート
startプログラムやコマンドを新しいウィンドウで起動
systeminfoシステム情報を表示
taskkillプロセスを終了
tasklist実行中のプロセスを表示
telnetTelnet接続を行う
telnet: closeTelnetセッションを閉じる
telnet: display設定を表示
telnet: openホストに接続
telnet: quitTelnetを終了
telnet: sendテキストを送信
telnet: setオプションを設定
telnet: statusステータスを表示
telnet: unsetオプションを解除
time時刻を表示または設定
timeout一時停止し、カウントダウンを表示
titleコマンドプロンプトのタイトルを設定
tlntadmnTelnetサービスを管理
treeディレクトリ構造をツリー表示
tzutilタイムゾーンを表示または設定
volボリュームラベルとシリアル番号を表示
whereファイルやコマンドの場所を検索
whoami現在のユーザー情報を表示
wmicWMI情報を表示
xcopyファイルやディレクトリをコピー

実用的なバッチファイルの例

例1: システム情報の収集とログ保存

複数のコマンドを組み合わせて、システム情報を自動的に収集し、ログファイルに保存するバッチファイルを作成します。

コード例

@echo off
rem システム情報を収集し、ログファイルに保存するバッチファイル

echo システム情報を収集しています...
systeminfo > systeminfo.log

echo ネットワーク設定を取得しています...
ipconfig /all >> systeminfo.log

echo インストール済みプログラム一覧を取得しています...
wmic product get name,version >> systeminfo.log

echo 収集が完了しました。systeminfo.log を確認してください。
pause

各行の説明

  • @echo off: コマンドの入力内容を非表示にします。
  • rem: コメント行で、コードの説明を記述します。
  • echo: ユーザーにメッセージを表示します。
  • systeminfo > systeminfo.log: システム情報を取得し、systeminfo.log に上書き保存します。
  • ipconfig /all >> systeminfo.log: ネットワーク設定を取得し、systeminfo.log に追記します。
  • wmic product get name,version >> systeminfo.log: インストール済みのプログラム一覧を取得し、systeminfo.log に追記します。
  • pause: 処理を一時停止し、ユーザーの入力を待ちます。

実行結果の説明

このバッチファイルを実行すると、同じフォルダ内に systeminfo.log というログファイルが作成されます。このファイルにはシステム情報、ネットワーク設定、インストール済みプログラムの一覧が記録されています。

例2: 定期的なバックアップの自動化

指定したフォルダを別の場所にバックアップするバッチファイルを作成します。

コード例

@echo off
rem 定期的なバックアップを行うバッチファイル

set SOURCE=C:\Users\YourName\Documents
set DEST=D:\Backup\Documents_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

echo バックアップを開始します...
xcopy "%SOURCE%" "%DEST%" /E /H /C /I

echo バックアップが完了しました。%DEST% を確認してください。
pause

各行の説明

  • set SOURCE=...: バックアップ元のフォルダを設定します。
  • set DEST=...: バックアップ先のフォルダを、日付を含めて設定します。
  • %DATE:~0,4%: 日付の年部分を取得します(YYYY)。
  • %DATE:~5,2%: 月部分を取得します(MM)。
  • %DATE:~8,2%: 日部分を取得します(DD)。
  • xcopy: ファイルとディレクトリをコピーします。
  • /E: 空のディレクトリもコピー。
  • /H: 隠しファイルやシステムファイルもコピー。
  • /C: エラー時にもコピーを続行。
  • /I: 送信先が存在しない場合、ディレクトリと判断。

実行結果の説明

このバッチファイルを実行すると、D:\Backup\Documents_YYYYMMDD フォルダが作成され、C:\Users\YourName\Documents の内容がすべてバックアップされます。

トラブルシューティング

エラー1: バッチファイルが実行されない

問題点

バッチファイルをダブルクリックしても何も起こらない、または一瞬だけウィンドウが表示されてすぐに消えてしまう。

解決策

  • pause コマンドの追加:
    バッチファイルの最後に pause を追加して、ウィンドウが閉じるのを防ぎます。
  @echo off
  echo Hello, World!
  pause
  • ファイル拡張子の確認
    ファイルが .bat.txt になっていないか確認します。正しくは .bat です。

エラー2: コマンドが見つからない

期待している動作
パス誤りでエラー

問題点

バッチファイル実行時に「’コマンド名’ は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが表示される。

解決策

  • コマンドのスペルを確認:
    コマンド名に誤字脱字がないかチェックします。
  • 環境変数 PATH の確認:
    必要なコマンドが PATH に含まれているか確認します。
  • フルパス指定:
    コマンドのフルパスを記述してみます。
  @echo off
  "C:\Windows\System32\ipconfig.exe"
  pause

デバッグ方法

手順

  1. エコーオンにする:
    バッチファイルの先頭で @echo off を削除またはコメントアウトし、実行されるコマンドを表示します。
  2. エラー出力をログに保存:
    エラー内容をファイルに出力して分析します。
   @echo off
   コマンド > output.log 2> error.log
  1. ステップ実行:
    コマンド間に pause を挿入し、各ステップで確認します。

ベストプラクティスと注意点

効率的なバッチファイル作成のコツ

  1. コメントを活用する:
    rem:: を使って、コードの意図を明確にします。
  2. 変数を使用する:
    set コマンドで変数を定義し、再利用性を高めます。
  3. エラーハンドリングを実装:
    if 文やエラーレベルを使って、エラー発生時の動作を制御します。
  4. モジュール化:
    共通の機能は別のバッチファイルに分けて、call コマンドで呼び出します。

具体的な例

@echo off
rem ユーザーフォルダをバックアップするスクリプト

set SOURCE=%USERPROFILE%
set DEST=D:\Backup\%USERNAME%_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

if not exist "%DEST%" (
    mkdir "%DEST%"
)

xcopy "%SOURCE%" "%DEST%" /E /H /C /I
if %ERRORLEVEL% NEQ 0 (
    echo バックアップに失敗しました。
) else (
    echo バックアップが完了しました。
)
pause

セキュリティ上の注意点

  • 信頼できるコマンドのみ使用
    不明なコマンドやスクリプトを実行しないようにします。
  • 管理者権限の扱いに注意
    必要な場合のみ管理者権限で実行し、権限の乱用を避けます。
  • パスワードのハードコーディングを避ける
    スクリプト内にパスワードなどの機密情報を直接記述しないようにします。

まとめ

この記事では、バッチファイルの実用的な例からトラブルシューティング、ベストプラクティスまで幅広く解説しました。バッチファイルを活用することで、日常の作業を効率化し、時間を有効に使うことができます。

次のステップとして、さらに複雑なタスクの自動化や、他のスクリプト言語との組み合わせも検討してみてください。

関連情報

FAQ(よくある質問)

Q1: バッチファイルがダブルクリックで実行できないのはなぜですか?

A1 ファイルの拡張子が正しく設定されているか確認してください。.bat ではなく .txt.bat.txt になっている可能性があります。また、セキュリティソフトがブロックしていないかも確認してください。


Q2: バッチファイルで日本語が文字化けします。どうすればいいですか?

A2 バッチファイルを保存する際に、文字コードを ANSI に設定してください。特にメモ帳以外のエディタを使用している場合、デフォルトで UTF-8 になっていることがあります。


Q3: 管理者権限が必要なコマンドを自動実行するにはどうすればいいですか?

A3 バッチファイルのショートカットを作成し、そのプロパティで「管理者として実行」を設定します。または、タスクスケジューラを使用して、管理者権限で実行するように設定できます。

参考資料・関連リンク