MOVE と RENAME は、ソース マスクでワイルド カードを使用して複数のファイルを操作できます。また、個々のフォルダーを操作することもできます。ただし、ソース マスクでワイルド カードを使用して複数のフォルダーを操作することはできません。
そのため、ループを使用してフォルダーを個別に移動し、ワイルドカードを使用して残りのすべてのファイルを直接移動できます。
for /d %%F in ("%LocalAppData%\A\*") do move /y "%%F" "%~dp0..\App\D"
move /y "%LocalAppData%\A\*" "%~dp0..\App\D"
または、1 つのループですべてを個別に移動するだけです。これに関する唯一の欠点は、アクティブなコード ページにマップされていないファイル/フォルダー名に Unicode が含まれている場合に失敗する可能性があることです。効率も少し悪いですが、それほど重要ではないと思います。
for /f "eol=: delims=" %%F in ('dir /b "%LocalAppData%\A\*"') do move /y "%LocalAppData%\A\%%F" move /y "%%F" "%~dp0..\App\D"
この最後のアプローチの利点の 1 つは、/A
オプションをdir
コマンドに追加して (属性を続けないでください)、すべてのファイルとフォルダーを移動できることです。