Сценарий резервного копирования командной строки 7zip ведет себя странно - PullRequest
1 голос
/ 27 августа 2011

Я создаю небольшой скрипт резервного копирования для личного использования, и он работает на 99% на последней версии 7zip, Win7x64:

:: u: Обновить архив

:: -t7z: использовать тип файла 7z (менее совместимые и меньшие результаты)

:: -mx = 9: сжатие "Ultra"

:: -ms = off: не создаватьсплошной архив (они несовместимы с режимом обновления архива)

:: -mmt = off: включить многопоточность

:: -r: рекурсивно (обходить все подкаталоги)

:: -ssw: сжать заблокированные файлы

:: -w: рабочий каталог на диске G: (без временной копии файла с диска на диск)

@ echo "% userprofile% \ Desktop">> list.txt

@ echo "% userprofile% \ Documents" >> list.txt

@ echo "% userprofile% \ Downloads" >> list.txt

@echo "% userprofile% \ Saved Games" >> list.txt

@ echo "% userprofile% \ Pictures" >> list.txt

"C: \ Program Files (x86)\ 7-Zip \ 7z.exe "u -t7z -mx = 9 -ms = off -mmt = on -r -ssw -wg:" G: \ AutoSaveC \ SaveC.7z "@ list.txt

del list.txt

shutdown -s -t 180

Существует две проблемы:

1 - Несмотря на то, что архив содержит все ожидаемые папки и файлы, он также содержит материалы, которые никогда не должны быть там (только часть файлов из исходных папок):

% userprofile% \AppData

% userprofile% \ Music

2 - Он также дает мне предупреждения об отказе в доступе к папкам. Я НИКОГДА не говорил ему смотреть:

C: \ Users \ LocalAdmin \ AppData \ Local \ Application Data \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ AppData \ Local \ ElevatedDiagnostics \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ AppData \ Local \ History \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ AppData \ Local \ Temp \ msdtadmin \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ AppData \ Local \ Temporary Internet Files \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ Application Data \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ Cookies \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ Local Settings \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ Recent \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.C: \ Users \ LocalAdmin \ SendTo \: ПРЕДУПРЕЖДЕНИЕ: доступ запрещен.

Знаете ли вы, что я делаю неправильно?Или это баг с 7zip?

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Учтите, что в этих каталогах могут быть мягкие ссылки на файлы. В частности, папка Users заполнена виртуальными путями. Там есть пути, которые существуют исключительно для перенаправления старых приложений, которые все еще используют их в нужное место.

1 голос
/ 29 августа 2011

Вместо того, чтобы отображать содержимое каталога так, как вы это делаете, почему бы не перенаправить вывод DIR в ваш текстовый файл? Таким образом, вы можете отфильтровать скрытые файлы, файлы .lnk, системные файлы и многие другие параметры фильтрации файлов. Например, чтобы отсеять скрытые, системные и .lnk файлы:

DIR "%userprofile%\Desktop" /b /s /a:-h-s | FIND /v "*.lnk">>"C:\some\file.txt"

ключ / b вернет только имя файла. Тогда, конечно, FIND / v означает найти все файлы, НЕ содержащие следующую строку.

...