回答:
これは古き良きで行うことができますfor:
for /r C:\Folder %f in (*.png) do @copy "%f" C:\png
派手なものは何もありません。
%fですか?
f" was unexpected at this time。動作する%fように変更し%%fます。ただし、これをバッチファイルで実行していました。バッチプログラムではなくコマンドラインでFORコマンドを使用している場合は、%% Gではなく%Gだけを使用してください。 ss64.com/nt/for.html
for2つのことについて混乱するかもしれないというdことです%~dd。forドキュメントは、混乱を避けるために、変数のために大文字を使用することを示唆しているが、置換はまだ変数名と明確に区別されている、私は思います。
cygwinがインストールされている場合、これはfindの仕事です。
cp `find /cygdrive/c/folder/* -name '*png'` /cygdrive/c/png/
(ただし、ファイル名にスペースが含まれていると問題が発生します- findすべての状況で機能するコマンドのバリアントがあります)
Vista、2003、または2008を実行している場合は、柔軟性は劣りますが、まだ有用な「forfiles」が友人です。何かのようなもの:
FORFILES /P c:\folder\ /M *.png /S /C "cmd /c copy @file c:\png\"
注:上記のコマンドのいずれもテストしていませんが、理論的には動作するはずです...