Windowsバッチのファイル操作は、パスを二重引用符で囲み、処理する場所を決めてから実行します。
ここではBATの隣に練習用の出力だけを作り、その中で名前変更・移動・コピーを試します。
名前変更・移動・コピーをまとめて試す
ZIPは新しい空のフォルダーへ展開し、元データや既存の出力を含む場所へ重ねて展開しないでください。
- ZIPのbasic.batをメモ帳で開いて内容を確認する
- ZIPを展開したフォルダーでコマンドプロンプトを開き、basic.batを実行する
- 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の隣に練習用の出力だけを作り、その中で、名前変更・移動・コピーを試します。
- まず、ZIPを新しい空のフォルダーへ展開する。元のデータや、既存の出力を含む場所へ、重ねて展開しない。
- basic.batをメモ帳で開いて、内容を確認する。確認してから、展開したフォルダーでコマンドプロンプトを開き、basic.batを実行する。
- 空白や記号があるパスは、二重引用符で囲む。!を保持するため、遅延展開を無効にする。BAT自身の場所は、
"%~dp0"で扱い、「送る」メニューで渡された対象は、"%~1"で扱う。 - 実行したら、practice-outputの保管、コピー.txt、フォルダーコピーの内容を確認する。
- 削除する前に、delとrmdirの違いを確認する。delはファイルを削除するコマンドで、フォルダーそのものは消さない。rmdirはフォルダーを削除し、/sを付けると、中のファイルと下位フォルダーも対象になる。
- 片付けるときは、エクスプローラーで、practice-outputの場所と中身を確認し、必要なファイルを取り出してから処理する。
旧版の一括削除の例は、対象の取り違えで復旧できないため、この練習から外しました。
削除する前に、場所と中身を必ず確認してください。
関連するファイル操作とツール





よくある質問:Windowsバッチのファイル操作で迷ったときのチェックリスト
パスに空白や記号があるときは?
二重引用符で囲みます。
!を保持するため、遅延展開を無効にします。
この記事の練習は、日本語・空白・!・&・角括弧を含む名前で、確認しています。
delとrmdirは、どう違いますか?
delはファイルを削除するコマンドで、フォルダーそのものを消すコマンドではありません。
rmdirはフォルダーを削除し、/sを付けると、中のファイルと下位フォルダーも対象になります。
出力のフォルダーがすでにあるときは?
練習のコードは、practice-outputがすでにあると、処理を止めます。
新しい空のフォルダーで、やり直してください。
実行の途中で、権限や容量のエラーが出たときは?
出力を未完成として扱い、既存の制作データへ混ぜず、新しい練習場所で、やり直してください。
UNCの共有先でも、実行できますか?
UNC共有先の実行は、権限やネットワークの状態にも依存します。
この記事のローカルの検証には含めていません。
「送る」メニューで渡された対象は、どう扱いますか?
"%~1"として扱います。
対象が、ファイルかフォルダーかを判定する「送る」用の例は、画像名を取得する記事に掲載されています。
