0

%LocalAppdata%\Aファイルを (サブフォルダーと共に)ディレクトリからディレクトリに移動したいと考えていますB\App\D
バッチ ファイルはB\Batディレクトリにあります。私は現在、ファイルをコピーするために次のことを行ってい %LocalAppdata%\AますB\App\D-

MOVE /Y "%LocalAppData%\A\*.*" "%~dp0..\App\D"

(フォルダBは変数なので、使用できないことに注意してください)

上記はサブフォルダーを移動していないようです。

4

2 に答える 2

4

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コマンドに追加して (属性を続けないでください)、すべてのファイルとフォルダーを移動できることです。

于 2013-10-03T04:38:37.140 に答える
1

作業ディレクトリを親に設定します。

pushd "%~dp0.." && MOVE /Y "%LocalAppData%\A\*.*" ".\App\D\"
于 2013-10-02T16:15:11.483 に答える