2009-05-28 11 views
27

Chciałbym skopiować kilka znanych plików do innego katalogu jako część zdarzenia post-build, ale nie chcę mieć linii i linii "copy [plik] [miejsce docelowe] [przełączniki]" w mojej kompilacji zdarzenie. Jeśli to możliwe, chciałbym wymienić pliki, które chciałbym skopiować, używając podobnego formatu: "copy [plik 1] [plik 2] [plik 3] [etc ...] [miejsce docelowe] [przełączniki]" . Jednak wydaje się, że Windows nie lubi tego typu formatu. Jakieś pomysły? Dzięki!Czy mogę kopiować wiele nazwanych plików w wierszu poleceń systemu Windows za pomocą pojedynczego polecenia "kopiuj"?

Odpowiedz

41

Można użyć „za” albo w pliku wsadowym lub bezpośrednio z wiersza poleceń:

for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\ 

symbole wieloznaczne są obsługiwane w tym listy plików, a także:

for %I in (*.txt *.doc *.html) do copy %I c:\somedir\ 

Aby uzyskać więcej informacji, po prostu typ dla /? z wiersza poleceń lub dla znacznie łatwiejszej do odczytania pomocy użyj Start-> Pomoc i obsługa techniczna i wyszukaj "Dla". W moim pudełku XP Pro była to pozycja 15 w pełnotekstowych wynikach wyszukiwania.

+3

Działa jak urok! Jedyną rzeczą jest to, że muszę podwoić swoje procentowe znaki, gdy są używane w zdarzeniu budowania (tj. Dla %% I w ...). Dzięki!! – Pwninstein

+0

JEŻELI pliki znajdują się w podfolderach dodaj '/ f' jak' dla/f %% I w (* .txt * .doc * .html) skopiuj% I c: \ somedir \ ' – Matheus

2
+0

Pytanie nie sugerują .NET jest jeszcze zainstalowany, i które wymagają opracowania MS zbudować skrypt. Już wystarczy zrobić kopię wiersza poleceń; dlaczego dodajesz to wszystko na wierzchu? – jpmc26

+0

pytanie dotyczy kopiowania "w ramach wydarzenia po wybudowaniu". używanie MSBuild było dla mnie naturalne. –

+0

@DavidSchmitt Myślę, że to jest to, czego chcę, ale nie jestem pewien, w jaki sposób mogę użyć tego w przypadku kompilacji. Czy możesz to pokazać, żeby to zrobić? –

15

XP i Vista zastąpiony xcopy z robocopy, i będzie to robić dokładnie to, co chcesz. Składnia co chcesz czuje wstecz na początku, ale spełnia swoje zadanie:

robocopy source\folder a\dest\folder file1.exe file2.bat file3.dll file4.txt 
+1

(przynajmniej wersje starsze) XP nie zawiera robocopy, musisz zainstalować, jeśli z czegoś takiego jak zestaw zasobów serwera Windows 2003: http://www.microsoft.com/Downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang = en – Dolphin

+0

@Dolphin: good catch; Miałem go na swoich maszynach XP i nie pamiętałem instalacji go samodzielnie, ale masz rację. – Kevin

+2

Ani XP ani Vista "zastąpione" xcopy. Wciąż tam jest. – Timwi

Powiązane problemy