3

私はCMDよりもUNIXシェルの使用に慣れていますが、これを機能させる方法がよくわかりません。.xml ファイルを含む他のいくつかのサブディレクトリを含むディレクトリがあります。すべてのファイルを再帰的にルート ディレクトリに移動したいと考えています。私はUNIXでこれが次のように行われることを知っています:

find FOLDERPATH -type f -name '*.xml' -exec mv -i {} FOLDERPATH \;

それでも、同じように機能するものを見つけることができないようです。XCOPY は有望に見えましたが、フォルダーだけをコピーするのではなく、構造全体をコピーするため、不要なサブディレクトリを取得してしまいます。他の提案はありますか?

4

2 に答える 2

5

これは、CMD プロンプトから機能します。ファイルの移動先のフォルダーで実行すると、そのフォルダー内のサブディレクトリが処理されます。

ファイル名の衝突をエレガントに処理するメカニズムは提供されません。

for /R /D %f in (*) do move "%f\*.xml" .

これはバッチファイルで機能します。

@echo off
for /R /D %%f in (*) do move "%%f\*.xml" .
于 2013-04-22T03:39:55.390 に答える
0

これを試して:

set FOLDERPATH=...
for /R "%FOLDERPATH%" %%f in (*.xml) do move "%%~ff" "%FOLDERPATH%"
于 2013-04-21T18:39:30.367 に答える