Mam około 65000 plików w folderach w 3000 c:\foo\root
(to znaczy c:\foo\root\folder1
, c:\foo\root\folder2
etc). Chcę skopiować wszystkie te pliki do jednego folderu c:\All\
.
Próbowałem Robocopy, ale robi tylko pełną kopię (w tym katalogi). Jeśli podczas procesu kopiowania napotka pliki o tej samej nazwie, potrzebuję go, aby zmienić nazwę nowego na temp(2).file
podobny lub podobny, a nie tylko zignorować go lub zastąpić.
Czy ktoś wie, jak to zrobić za pomocą pliku wsadowego / wiersza polecenia? Nawet niektóre C # byłoby świetne.
Odpowiedzi:
Nie myśląc jednoznacznie o bankomatach, więc jest to ogólna metoda ...
Jeśli zarchiwizujesz drzewo (użycie metody bez kompresji byłoby szybsze), możesz pracować na dwa sposoby. Zarchiwizuj drzewo (włączając w to podkatalogi) i wypakuj za pomocą „E” (wypakuj), a nie za pomocą „X” (wypakuj pliki z pełną ścieżką), wyodrębnione pliki zostaną umieszczone w jednym katalogu. Innym sposobem na zrobienie tego samego byłoby utworzenie archiwum, aby powiedzieć mu „wykluczyć ścieżki z nazw”. Wtedy utworzone archiwum byłoby pozbawione ścieżek, tzn. Wszystkie pliki przechowywane w jednym katalogu w archiwum, więc po rozpakowaniu również by je rozpakowały. (Myślenie o poprzedniej metodzie ma większy sens).
(ARJ może to zrobić. Myślisz, że 7z & RAR i ZIP też mogą?)
„Spłaszczyć” to słowo, o którym starałem się myśleć wcześniej. Dzięki temu program do tworzenia kopii zapasowych / synchronizacji może być ustawiony na „spłaszczanie” struktury katalogów.
Więc inne myśli ... Tar i DD? Może to pomoże innym wymyślić lepszą odpowiedź, że nie mam na myśli bankomatu.
(Minęło dużo czasu, odkąd użyłem Tar, więc mogę się wycofać, ale coś w rodzaju ...)
Archiwizator i kopia zapasowa / synchronizator powinny być w stanie obsługiwać wszelkie duplikaty w sposób zautomatyzowany.
ARJ może. Nie wiesz o smole?
źródło