D:\ images(ランダムな名前のサブフォルダーはここにあります)にあるすべての* .tifファイルをd:\ allにコピーするバッチスクリプトを作成しようとしました。
xcopy D:\Downloads\*.TIF D:\temp\ /s
動作しますが、すべてのフォルダツリーでコピーされます。他のキーを使用しようとしましたが、機能しません。手伝ってくれてありがとう!
FOR
はあなたの友達です。読んだ HELP FOR
の/R
オプションと%~nx
変数置換。そして、この非常に単純なコードを試してください。
pushd d:\downloads
for /r %%a in (*.tif) do (
echo COPY "%%a" "d:\temp\%%~nxa"
)
popd
結果を注意深く観察し、ECHO
コマンドを削除します。
エラー、重複した名前、エッジケース、予約文字のある名前、競合状態、宇宙イベントなどに対処するには、コードを改良する必要があります...
たとえば、Windowsファイルエクスプローラーを使用してファイルを検索* .gif、検索ウィンドウでファイルを取得し、Edit => Select Allを使用して、コピーしてから目的のフォルダーに貼り付けました。これにより、すべてのサブディレクトリ内のすべてのgifファイルが単一のフォルダーにコピーされました。多数のファイルの場合、ハングアップ/応答しないことがありますが、それ以外の場合は問題なく動作します。
pushd D:\Source
for /r %%a in (*.?*) do (
MOVE "%%a" "D:\Destination folder\%%~nxa"
)
popd
XXCOPYフリーウェアを使用することもできます。 XCOPYのように機能しますが、/ SGパラメータを使用すると、サブディレクトリがフラット化されます。使い方はこちら こちら 。