Amazonで商品を見るセール会場へ

Windowsバッチ│よく使うバッチファイルまとめ

Windowsバッチのファイル操作は、パスを二重引用符で囲み、処理する場所を決めてから実行します。

ここではBATの隣に練習用の出力だけを作り、その中で名前変更・移動・コピーを試します。

目次

名前変更・移動・コピーをまとめて試す

ファイル操作・一覧出力の練習用データとスクリプト(ZIP)

ZIPは新しい空のフォルダーへ展開し、元データや既存の出力を含む場所へ重ねて展開しないでください。

  1. ZIPのbasic.batをメモ帳で開いて内容を確認する
  2. ZIPを展開したフォルダーでコマンドプロンプトを開き、basic.batを実行する
  3. practice-outputの保管、コピー.txt、フォルダーコピーの内容を確認する
@echo off
setlocal DisableDelayedExpansion
chcp 65001 >nul
pushd "%~dp0" || exit /b 1
if exist "practice-output" exit /b 1
md "practice-output" || exit /b 1
echo practice>"practice-output\元 資料 ! & [x].txt"
ren "practice-output\元 資料 ! & [x].txt" "名前変更.txt" || exit /b 1
md "practice-output\保管" || exit /b 1
move /-Y "practice-output\名前変更.txt" "practice-output\保管\名前変更.txt" || exit /b 1
copy /-Y "practice-output\保管\名前変更.txt" "practice-output\コピー.txt" || exit /b 1
xcopy "practice-output\保管" "practice-output\フォルダーコピー\" /E /I || exit /b 1
dir /s /b /a-d "practice-output"
popd

コードを貼り付けて保存する場合は、UTF-8(BOMなし)のbasic.batにします。

renの第2引数は変更後のファイル名で、移動先のフルパスではありません。

moveは練習で作った1ファイルだけを保管へ移し、copyとxcopyはコピーを作ります。

/-Yは既存ファイルへ上書きする際に確認する指定で、xcopyには確認を省く/Yを付けていません。

practice-outputがすでにある場合は最初に停止し、前回の結果を上書きしません。

スポンサーリンク

空白・日本語・記号があるパス

空白や&があるパスは二重引用符で囲み、!を保持するため遅延展開を無効にします。

mdはフォルダー作成、pushdは現在の作業場所を保存して移動するコマンドです。

BAT自身の場所は"%~dp0"、送るメニューで渡された対象は"%~1"として扱います。

対象がファイルかフォルダーかを判定する「送る」用の例は、画像名を取得する記事に掲載しています。

UNC共有先の実行は権限やネットワーク状態にも依存し、今回のローカル検証には含めていません。

削除コマンドの対象と戻し方

delはファイルを削除するコマンドで、フォルダーそのものを消すコマンドではありません。

rmdirはフォルダーを削除し、/sを付けると中のファイルと下位フォルダーも対象になります。

旧版の一括削除例は対象の取り違えで復旧できないため、この練習から外しました。

練習結果を片付ける場合はエクスプローラーでpractice-outputの場所と中身を確認し、必要なファイルを取り出してから処理します。

実行途中で権限や容量のエラーが出た場合は出力を未完成として扱い、既存の制作データへ混ぜず、新しい練習場所でやり直します。

2026年10月2日にWindows CMDで日本語・空白・!・&・角括弧の名前と再実行時の停止、コピー内容の一致を確認しました。

仕様:Microsoft ren、move、del、rmdir。

あなたはどっち?利用環境に合わせた最適プラン判定フロー

バッチを実行する前の確認から順に当てはめると、安全にファイル操作を試せます。

2026年10月2日にWindows CMDで確認した内容と、Microsoftのren、move、del、rmdirの仕様にもとづく目安です。

この記事の練習は、BATの隣に練習用の出力だけを作り、その中で、名前変更・移動・コピーを試します。

  1. まず、ZIPを新しい空のフォルダーへ展開する。元のデータや、既存の出力を含む場所へ、重ねて展開しない。
  2. basic.batをメモ帳で開いて、内容を確認する。確認してから、展開したフォルダーでコマンドプロンプトを開き、basic.batを実行する。
  3. 空白や記号があるパスは、二重引用符で囲む。!を保持するため、遅延展開を無効にする。BAT自身の場所は、"%~dp0"で扱い、「送る」メニューで渡された対象は、"%~1"で扱う。
  4. 実行したら、practice-outputの保管、コピー.txt、フォルダーコピーの内容を確認する。
  5. 削除する前に、delとrmdirの違いを確認する。delはファイルを削除するコマンドで、フォルダーそのものは消さない。rmdirはフォルダーを削除し、/sを付けると、中のファイルと下位フォルダーも対象になる。
  6. 片付けるときは、エクスプローラーで、practice-outputの場所と中身を確認し、必要なファイルを取り出してから処理する。

旧版の一括削除の例は、対象の取り違えで復旧できないため、この練習から外しました。

削除する前に、場所と中身を必ず確認してください。

関連するファイル操作とツール

よくある質問:Windowsバッチのファイル操作で迷ったときのチェックリスト

パスに空白や記号があるときは?

二重引用符で囲みます。

!を保持するため、遅延展開を無効にします。

この記事の練習は、日本語・空白・!・&・角括弧を含む名前で、確認しています。

delとrmdirは、どう違いますか?

delはファイルを削除するコマンドで、フォルダーそのものを消すコマンドではありません。

rmdirはフォルダーを削除し、/sを付けると、中のファイルと下位フォルダーも対象になります。

出力のフォルダーがすでにあるときは?

練習のコードは、practice-outputがすでにあると、処理を止めます。

新しい空のフォルダーで、やり直してください。

実行の途中で、権限や容量のエラーが出たときは?

出力を未完成として扱い、既存の制作データへ混ぜず、新しい練習場所で、やり直してください。

UNCの共有先でも、実行できますか?

UNC共有先の実行は、権限やネットワークの状態にも依存します。

この記事のローカルの検証には含めていません。

「送る」メニューで渡された対象は、どう扱いますか?

"%~1"として扱います。

対象が、ファイルかフォルダーかを判定する「送る」用の例は、画像名を取得する記事に掲載されています。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

仕事効率化のおすすめ書籍

仕事用PCの選び方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

須澤 元貴のアバター 須澤 元貴 代表社員

MOTOKI合同会社 代表社員。
アニメ・映像業界とゲーム業界で、2D・UI・3D・アニメーション制作、映像編集、ツール制作に携わってきました。
現在はWordPressを中心にWebサイトの制作とカスタマイズを手がけています。
著書に『Unity デザイナーズ・バイブル』『Unityゲーム プログラミング・バイブル 2nd Generation』(ボーンデジタル)。
岡山県出身、埼玉県在住。

目次