Как извлечь дерево каталогов и файлы из XP в электронную таблицу

Как я могу экспортировать все содержимое задействованного дерева каталогов Windows XP в электронную таблицу или CSV? То есть, как я могу экспортировать полный список имен каталогов, имен подкаталогов, имен файлов и сохранить их иерархическую структуру во время экспорта?

Ниже приведено сильно сокращенное представление дерева каталогов, с которым я работаю:

    C:\Dropbox\PROJECTNAME\Images\Photos
    .Sub1
    ..Sub1-A
    ...Sub1-A-1
    ....500+ photo files (JPEGs)
    .Sub2
    ..Sub2-A
    ...Sub2-A-1
    ....100+ photo files (JPEGs) [same for below directories]
    ...Sub2-A-2
    ...Sub2-A-3
    ..Sub2-B
    ...Sub2-B-1
    ...Sub2-B-2
    ...Sub2-B-3
    .Sub3
    ..100+ photos (JPEGs)

Я пробовал следующие два метода:

    1) Browser
    1. Open Windows Explorer and select the source folder in the left pane.
    2. Press Ctrl + A to select all items in the right pane.
    3. Press and hold the Shift key, then right click on the selection.
    4. From the context menu, choose "Copy as Path".
    5. Paste the list into Excel.

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

    2) Command Prompt
    1. type cmd into the start menu to bring up a dos prompt
    2. use the command (for instance)   "cd C:\Users\BobJones\Desktop\New folder" to navigate to the folder in question
    3. use the command "DIR > doggy.csv" to create a file named doggy.csv in the same directory that you can open directly with excel. Nothing much looks lik it is happening but you wuill find the small file as expected.

Та же проблема, что и у метода браузера. Созданные файлы Excel содержали только непосредственное содержимое соответствующего каталога XP, а не ВСЕ содержимое вниз по иерархии каталогов. Итак, насколько я могу судить, это нужно было бы выполнить несколько раз, а затем полученные файлы Excel нужно было бы каким-то образом объединить. (Вышеупомянутый метод браузера кажется мне меньшим количеством шагов.)

Спасибо, NewTo


Эта часть вопроса рассматривается здесь: stackoverflow.com/questions/19184470/…

@foxidrive: После долгих исследований я попробовал следующее:

каталог /s /b>имя_файла.csv. При этом экспортируется полный список файловых путей/имен файлов.ext, по одному на строку CSV-файла. Это близко к тому, что мне нужно. Есть ли способ сопоставить каждый уровень иерархии путей к файлам с собственным столбцом/полем csv, а не с одной длинной строкой? Это привело бы меня туда, куда я пытаюсь попасть.

Я также исследовал метод по ссылке, которую вы разместили. Я смог понять значение каждой части команды, за исключением одного, и, пожалуйста, извините за мое невежество, но что означает буква «F»? Я предполагаю, что это означает «файл» (?). (В FOR /? буква «I» используется для иллюстрации модификаторов.)

Я попробовал метод по ссылке, со следующими результатами:

1) for /r %f in (*) @echo "%~dpF", "%~nxF", %~zF >filename.csv -returns- 'echo было неожиданным в это время'.

2) (для /r %f в (*) @echo "%~dpf", "%~nxf", %~zf) >filename.csv -returns- ' "%~dpf" было неожиданным в это время'. [Скобки не указываются в FOR /?. Они обязательны?]

НовыйКому


person NewToProgrammingWorld    schedule 05.10.2013    source источник
comment
Добро пожаловать в StackOverflow. Пожалуйста, удалите этот вопрос и задавайте вопросы отдельно по мере решения вашей проблемы. Этот вопрос слишком велик и слишком многословен, чтобы ответы на него могли быть полезны кому-либо, кроме вас; мы пытаемся создать в целом полезный репозиторий вопросов и ответов.   -  person O. Jones    schedule 05.10.2013
comment
Существует простой способ создать CSV-файл с указанием пути, имени файла и т. д., если вы сообщите нам, какой формат вы хотите использовать в CSV-файле. Затем вы можете задать отдельный вопрос, чтобы узнать, как получить его в базу данных SQL.   -  person foxidrive    schedule 05.10.2013
comment
Эта часть вопроса рассматривается здесь: stackoverflow.com/questions/19184470/   -  person foxidrive    schedule 05.10.2013
comment
@Ollie Jones: Спасибо за руководство.   -  person NewToProgrammingWorld    schedule 05.10.2013
comment
@foxidrive: вопрос был отредактирован с учетом вашего ответа, спасибо.   -  person NewToProgrammingWorld    schedule 05.10.2013
comment
Вы не упомянули, какой формат вы хотите в файле CSV - какой field содержит какой data. В пунктах 1) и 2) отсутствует DO перед @echo   -  person foxidrive    schedule 05.10.2013
comment
foxidrive: для /r %f в (*) выполните @echo «%~dpf», «%~nxf», %~zf ›filename.csv. Это создает csv с правильными данными в каждом столбце, но по какой-то причине он возвращает только самый последний файл во всем дереве каталогов/подкаталогов, а не все файлы.   -  person NewToProgrammingWorld    schedule 06.10.2013
comment
@foxidrive: желаемый формат: VertRes в col_I, HorizRes в col_H, высота в col_G, ширина в col_F, имя файла.ext в col_E, родительский подкаталог в col_D, родительский подкаталог в col_C, родительский подкаталог в col -B, оставшийся префикс пути к файлу в col_A.   -  person NewToProgrammingWorld    schedule 06.10.2013
comment
Вам нужны окружающие круглые скобки, поскольку 2) показывает IE (code)>file.txt, и ваши требования к свойствам изображения будут означать, что либо скрипт VBS, либо сторонний инструмент (irfanview имеет возможность извлекать многие свойства изображения из командной строки) потребуется для получения дополнительных свойства, которые вы не видите в списке DIR. Возможно, Powershell также имеет возможность собирать свойства.   -  person foxidrive    schedule 06.10.2013
comment
@foxidrive: Это сработало. Большое спасибо за Вашу помощь. Я рассмотрю предложенные вами ресурсы.   -  person NewToProgrammingWorld    schedule 06.10.2013