Chciałbym użyć xcopy na komputerze z systemem Windows, aby wyciągnąć wszystkie pliki z rozszerzeniem .png do jednego katalogu.
Próbowałem xcopy C:\folder\*.png /s C:\png\
, ale zachowuje podkatalogi wewnątrz folderu \ (na przykład w C: \ png, jest C: \ png \ a \ b \ c \ img.png), czego nie chcę. Chcę po prostu wszystkie .png wewnątrz C: \ png bez zachowania struktury katalogów, która była w folderze C: \.
Odpowiedzi:
Można to zrobić za pomocą starego, dobrego
for
:Nic fajnego.
źródło
%f
jest?f" was unexpected at this time
. Przejście%f
do%%f
pracy. Jednak uruchomiłem to w pliku wsadowym: jeśli używasz polecenia FOR w wierszu polecenia, a nie w programie wsadowym, użyj tylko jednego znaku procentowego:% G zamiast %% G. ss64.com/nt/for.htmlfor
mogą się pomylić co do dwóch różnychd
rzeczy%~dd
.for
Dokumentacja sugeruje użycie wielkich liter dla zmiennych, aby uniknąć nieporozumień, ale podstawienia są nadal wyraźnie odróżniają się od nazwy zmiennej, myślę.Jeśli masz zainstalowany cygwin, będzie to zadanie do znalezienia:
(choć będzie to miało problem, jeśli którakolwiek z nazw plików będzie miała spacje - znajdziesz jednak wariant
find
polecenia, który zadziała we wszystkich okolicznościach)Jeśli korzystasz z systemu Vista, 2003 lub 2008, to mniej elastyczne, ale wciąż przydatne „pliki” to Twój przyjaciel. Coś jak:
Uwaga: nie testowałem żadnego z powyższych poleceń, ale teoretycznie powinny one działać ...
źródło