Пакетное резервное копирование файловой системы Windows - PullRequest
0 голосов
/ 10 июля 2011

Обновление:

Эхх - хотя на этот вопрос нет "ответа", я просто опустошил свои карманы и купил SSD.В любом случае, моя программа на виртуальном диске будет стоить примерно столько же.Меня больше не интересует ответ, поэтому я просто помечу его как «ответ» и продолжу свою жизнь.

Спасибо за помощь.


У меня есть программа, которая записывает файлы на виртуальный диск (в Windows XP), и мне нужно скопировать его данные с виртуального диска в каталог на моем жестком диске после его завершения.Очевидно, что в виртуальном диске пространство ограничено, и мне нужно освободить как можно больше места на виртуальном диске между запусками.Простое решение - скопировать папку данных, сгенерированную моей программой на виртуальном диске, в папку на жестком диске и рекурсивно удалить папку «данных» с виртуального диска.

Однако в этом решении есть проблема;моя программа просматривает файловую систему и имена файлов, чтобы убедиться, что она не перезаписывает файлы (самый последний файл данных в каталоге - 006.dat, поэтому он будет писать 007.dat вместо того, чтобы что-либо перезаписывать).Я не могу просто удалить файлы, как только я закончу запись данных, потому что для записи данных необходима файловая система без перезаписи старых файлов, когда я копирую данные обратно на жесткий диск

I 'Мне понравился простой пакетный скрипт Windows, который я могу выполнить после того, как моя программа закончит запись файлов данных на виртуальный диск.Этот пакетный скрипт должен скопировать папку «данных» ramdisk на мой жесткий диск и удалить все файлы с ramdisk, затем он должен заново создать файловую систему, как это было, но со всеми файлами нулевого байта.

Как мне поступить?

1 Ответ

0 голосов
/ 10 июля 2011

Можете ли вы просто удалить все файлы, КРОМЕ самого последнего, тогда у вас все равно будет 006, и ваш регистратор сгенерирует 007?

Это кажется более безопасным, чем создание файла нулевой длины, потому что вам придется сделатьуверен, что он не был скопирован в резервную копию в реальном 006.

edit: Извините, я не могу помочь с тем, как сделать это только в пакетном режиме, но есть куча утилит unix, специально найдите и коснитесь этогоидеально подходят для этого.Существуют многочисленные порты Windows, такие как поиск в SO.

Robocopy.exe (бесплатная загрузка в наборе ресурсов сервера Windows) может выполнять копирование из одного каталога в другой и имеет возможность просматривать каталог дляновые файлы и копировать их, когда они закрыты или изменены

...