Я думаю, что я хотел бы восстановить каталог текстовых / поддельных файлов на 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
Не делает подкаталоги.