Jak używać razem katalogu i kopiowania do wyszukiwania katalogów i kopiowania do folderu?

10

Muszę przeszukać określony folder i jego podkatalogi w poszukiwaniu plików, a następnie skopiować je do określonego folderu w innym miejscu. Czy możliwe jest wykorzystanie diri copyz rurą?

dir /s foo???.txt | copy g:\someplace

Powyższe nie działa. Lewa strona potoku znajduje to, czego chcę, ale nie mogę go skopiować skopiowanych plików. Korzystam z wiersza polecenia systemu Windows 7.

Flotsam N. Jetsam
źródło
Jakiego rodzaju pliku potrzebujesz z ciekawości? Czy znak wieloznaczny nie wystarczy?
Dave
Muszę użyć symboli wieloznacznych (??? - „?” Jest jednocyfrowym znakiem wieloznacznym) w poleceniu, aby powyższe przechwyciło foo_42, foo_01 itp. I byłyby w różnych podfolderach.
Flotsam N. Jetsam

Odpowiedzi:

10

Możesz po prostu użyć xcopy:

xcopy /s foo???.txt g:\someplace

Spowoduje to utrzymanie struktury katalogów.

Jeśli nie chcesz struktury katalogów, możesz wykonać następujące czynności:

for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace

Jeśli używasz tego w pliku wsadowym, powinieneś podwoić %to:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace
Rik
źródło
Właściwie muszę to trochę poprawić. Czy można to zrobić bez zachowania struktury katalogów?
Flotsam N. Jetsam
Haha, tego się obawiałem :) (dlatego właśnie to stwierdziłem). Ale co zrobiłbyś ze zduplikowanymi nazwami plików? Nie można tego zrobić za pomocą samego xcopy, ale można to zrobić za pomocą pipowania czegoś do robocopy (lub może po prostu skopiować, ale w pliku wsadowym). Jaką masz wersję systemu Windows?
Rik
Windows 7. Dla mojej aplikacji nie będzie żadnych duplikatów.
Flotsam N. Jetsam
Dodano metodę kopiowania do jednego katalogu. Na szczęście nie ma potrzeby robocopy. Po prostu użyj for /r.
Rik
1
Rządzisz. Chciałbym móc jeszcze raz cię głosować. Dzięki!
Flotsam N. Jetsam