Как мне скопировать все файлы в папке и все файлы в ее подпапках в одну папку на XP?
3 ответа
Предполагая, что все имена уникальны, вы сможете использовать эту команду (действительно, группа команд):
for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy "%a" "c:\Single-Folder"
Чтобы уточнить - откройте командную строку и в корневой папке папки с подпапками, которые вы хотите скопировать, выполните эту команду. Так, например, если вы хотите скопировать все в «C:\Sample Folder Tree» и всех его подкаталогах, вы можете перейти в «C:\Sample Folder Tree» из командной строки и затем запустить эту команду.
Или вы можете просто указать это в разделе dir следующим образом:
for /f "tokens=*" %a in ('dir /b /s /a-d "c:\Sample Folder Tree"') do @copy "%a" "c:\Single-Folder"
Если вы хотите увидеть, как это будет происходить без каких-либо действий, добавьте «@echo» между do и copy - вот так:
for /f "tokens=*" %a in ('dir /b /s /a-d "c:\Sample Folder Tree"') do @echo copy "%a" "c:\Single-Folder"
robocopy c:/here c:/there/ /S /COPYALL
Это работает. Это требует администрирования cmd, если вы не хотите /copyall (который копирует разрешения и я думаю, что метки времени вместо создания новых меток времени).
Есть Robocopy для XP и доступны на Vista и Windows 7. Копирование работает достаточно хорошо, хотя. Мне нравится robocopy, поскольку он не будет повторно копировать одни и те же файлы, если у dest есть копия (допустим, вы прерваны из-за перебоя в питании или хотите выключиться и спать)
Вы можете использовать утилиту каталогизации дисков SuperCat.