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。
関連するファイル操作とツール





