バッチファイルでファイルの分類をしたいと思っています(ファイル名に含まれている文字を調べてディレクトリにコピーする)。
以下のようなコードを書きましたがエラーが出力されます。
原因が分かる方、教えていただきたいです。
@echo off setlocal enabledelayedexpansion for /r ./ %%i in (*) do ( set fileDir=%%~dpi set file=%%~nxi if not "!file:1=!" == "!file!" ( echo !file! call :copyFile !fileDir! !file! ) else if not "!file:3=!" == "!file!" ( echo !file! call :copyFile !fileDir! !file! ) ) exit /b :copyFile set fileName=%~n2% if exist !fileName! ( if exist !fileName!/%2 ( cp %1%2 ./!FileName!_同名ファイル有り/%2 ) else ( cp %1%2 ./!fileName!/%2 ) ) else ( md !fileName! cp %1%2 ./!fileName!/%2 ) exit /b
エラーは以下です。
copyFileのif文の中に入っているif文が原因みたいなのですが・・・
'nabledelayedexpansion' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 '%i' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'ir' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 '%~nxi' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'ile!' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'opyFile' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'not' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'ile!' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 '!fileName!' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 '.' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 cp: missing destination file operand after `./!fileName!/' Try `cp --help' for more information. サブディレクトリまたはファイル !fileName! は既に存在します。 cp: missing destination file operand after `./!fileName!/' Try `cp --help' for more information.

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。