18

Я хотел бы использовать xcopy на компьютере с Windows, чтобы вытащить все файлы с расширением .png в один каталог.

Я пробовал xcopy C:\folder\*.png /s C:\png\ , но он хранит подкаталоги внутри \folder (например, в C:\png есть C:\png \a \b \c \img.png) который я не хочу. Я просто хочу, чтобы все .png внутри C:\png без сохранения структуры каталогов, которая была в папке C:\.

2 ответа2

31

Это можно сделать с помощью старого доброго for:

for /r C:\Folder %f in (*.png) do @copy "%f" C:\png

Ничего фантастического.

0

Если у вас установлен Cygwin, это будет работа для поиска:

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\"

Примечание: я не проверял ни одну из вышеуказанных команд, но теоретически они должны работать ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .