1

Я думаю, что я хотел бы восстановить каталог текстовых / поддельных файлов на USB-накопителе с точными именами файлов, которые существуют в главном каталоге.

Главный каталог находится на терабайтном диске, и он очень большой, чтобы поместиться на любой USB-флешке. Но, когда я использую флешку, я хотел бы столкнуться с именами файлов, когда я загружаю дубликат из других мест. то есть: я пытаюсь скачать что-то, и он скажет: «У вас уже есть файл с именем ...»

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

У меня есть как минимум 3 уровня структуры каталогов. Я собрал простую тестовую структуру каталогов с текстовыми файлами против реальной структуры (в основном) pdf. Когда я вывожу tree /a /f . > list.txt

    Folder PATH listing for volume Windows
    Volume serial number is 00C7-D795
    C:\USERS\USER\DESKTOP\TEST
    |   list.txt
    |   script.bat
    |   script.txt
    |   
    \---Top_Lvl
        |   file-2nd-1.txt
        |   file-2nd-2.txt
        |   file-2nd-3.txt
        |   
        +---2nd_Level-1
        |       file-3rd-1.txt
        |       file-3rd-2.txt
        |       file-3rd-3.txt
        |       
        +---2nd_Level-2
        |   |   file-3rd-4.txt
        |   |   file-3rd-5.txt
        |   |   file-3rd-6.txt
        |   |   
        |   \---3rd_Level-1
        |           file-4th-1.txt
        |           file-4th-2.txt
        |           
        \---2nd_Level-3
                file-3rd-7.txt

Я не знаю, как написать заголовок, чтобы программа для чтения PDF отображала файл с расширением .pdf (но на самом деле это текстовый файл), что было бы действительно потрясающим бонусом. И я не могу найти команду (attrib не работает, насколько я могу судить), которая выведет размер файла в текстовый вывод. Поскольку было бы здорово иметь размер действительного файла, нажав на поддельный файл, без необходимости искать что-либо в другом месте.

Потенциальные частичные решения?

Я нашел это:

Windows / Создать текстовые файлы подпапок с именами файлов в нем

Но это, кажется, делает беспорядок, и делает только один уровень каталогов.

И когда я переписал его / изменил его, он работал один раз, а затем перестал работать:

    @echo off

    for /dd %%D in (*) do (
      cd %%~nxD
      tree /a /f > ..\%%~nxD.txt
      cd ..

      echo %%~nxD > dir_info.tmp
      for /f "skip=3 delims=*" %%a in (%%~nxD.txt) do (
        echo.%%a >> dir_info.tmp
      )
      copy /y dir_info.tmp %%~nxD.pdf
      del /f /q dir_info.tmp
    )

Он будет сбрасывать результаты в каталог, в котором он запущен, вместо того, чтобы переносить его на рабочий стол (и я не могу понять, как перенести его на рабочий стол по умолчанию - по сравнению с жестким кодированием, если я использую более одного компьютер / учетная запись для доступа к главному каталогу диска). И я не уверен, что вы можете указать USB-флешку, так как она, вероятно, меняется все время, в зависимости от того, что еще подключено.

Кроме того, я очень часто на старых системах Windows, поэтому я искал командный файл. Если есть приложение, которое делает это, я определенно рассмотрю это - вместо того, чтобы заново вырезать колесо.


@eris предложил Robocopy, и есть нечто, называемое RichCopy:

https://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight

Но эти приложения будут делать фактические дубликаты главного каталога - и я не имею , что много свободного дискового пространства, в любом мастер - диск (и, как указано priorly: в рабочем USB флэш - памяти).

Похоже, я не был достаточно ясен; Я пытаюсь создать теневой каталог, в котором есть все имена файлов (и оптимальная информация о реальном файле, например размер), включая расширения - но в минимальном пространстве; Я предполагаю, что это будет мегабайт или 3 в фактическом потреблении пространства (поскольку каждый файл и каталог использует ~ блок) против 100 с гигабайт (например: файл 50 МБ, файл 1 МБ, файл 832 КБ, файл 10 МБ, файл 15 МБ).


Похоже, что Robocopy это то, что я хочу, если я могу заставить командную строку работать правильно:

ROBOCOPY Top_Lvl Shadow /CREATE

Не делает подкаталоги.

1 ответ1

0

У @eris была правильная идея.

Из командной строки:

robocoy *Top_Lvl* *Shadow* /create /mir

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .