автоматически создавать файлы в Windows?

автоматически создавать файлы в Windows?

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

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

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

У меня есть как минимум 3 уровня структуры каталогов. Я собрал простую тестовую структуру каталогов с файлами txt, против (в основном) реальной структуры 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

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

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


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

ROBOCOPY Top_Lvl Shadow /CREATE

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

решение1

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

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

robocoy *Top_Lvl* *Shadow* /create /mir

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

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

Связанный контент