回答:
これは古き良きで行うことができます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
for
2つのことについて混乱するかもしれないという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\"
注:上記のコマンドのいずれもテストしていませんが、理論的には動作するはずです...