![]() |
Не создается лог целостности архива.
Здравствуйте. Сделал следующий пакетный файл для резервного копирования БД через 7zip с одного ПК по сети на другой ПК, ну и закинул его в шедулер :
Код:
cmdow @ /HID Резервное копирование отрабатывает, затем происходит тестирование архива, но вот не пишется лог в тот каталог куда и происходит копирование архива, а вместо того пишется в каталог установки 7zip с датой создания. если же вручную запускаю этот bat из того каталога где он лежит, то лог создается в том же каталоге, где и сам bat-файл. Подскажите, что не так, возможно нужно внести еще какие-то коррективы в код? спасибо. |
diagnoz_, уберите «chcp 1251» и просто сохраняйте пакетный файл в кодировке OEM/866. Кавычки также не стоит указывать в значениях переменных окружения, указывайте их непосредственно в командах, то есть вот так:
Код:
set PROG=c:\Program Files\7-Zip\7z.exe Цитата:
Цитата:
Если требуется: Цитата:
Примерная болванка (не проверялось)
Код:
@echo off Я, правда, не понял, зачем Вы подавляете поток ошибок при тестировании? В чём смысл? И само тестирование зачем — ведь можно просто использовать ExitCode, возвращаемый 7-Zip, при создании архива? |
Iska, спасибо, Вы как всегда на высоте.
Цитата:
А болванка сработала как полагается. :) |
diagnoz_, из путей убирать не надо. Убирать надо из значений переменных окружения. Я ж даже пример на основе Вашего кода приводил:
Код:
set PROG=c:\Program Files\7-Zip\7z.exe |
:blush2: получилось.
|
Странно, эта конструкция без кавычек сработала только локально, с диска на диск. но по сети нет:
Цитата:
Та же история и с болванкой... |
Цитата:
Смотрите код, который я привёл выше в «Примерная болванка (не проверялось)». |
Iska,
упустил, в пути к каталогам есть русские буквы и пробелы, от того и ставил кавычки. или не надо? так как Вы указали в переменных - это я уже уяснил. |
diagnoz_, кавычки обязательны, если есть пробелы, но я лично обрамляю пути кавычками в любом случае, независимо от того, могут ли там быть пробельные символы (не только пробелы) или не могут быть.
|
Iska, никак не могу прикрутить, например, предложенную болванку для копирования по сети. выяснил, что это копирование " в никуда", идет прямо в корень того диска, куда должно идти копирование, вместо диск:\папка\пака\папка! да и плюс, не и выполняется копирование Всех, файлов в архив, а только папки и их содержимое, а те Файлы которые в корне основной папки, пропускаются.
|
Пример, моим кодом папки архивируются, а файлы ниже нет.
|
Цитата:
|
Код:
@echo off Код:
cmdow @ /HID На проверку архива, не смотрите, я уже о ней и не думаю... В пути "куда копировать", как ранее писал есть пробелы в названии папок с русскими буквами. |
diagnoz_, используйте rem, а не ::. Не надо 7zG.exe, пусть будет 7z.exe. В sDestination должен быть только путь, зачем Вы туда опять втиснули имя файла, которое в моём коде определяется отдельной переменной и ниже?
Код:
@echo off |
Iska, архив кидало в корень диска потому, что не видело в пути папок с русскими именами, а именно:
Код:
\\ip_adress_server\drive_name\папка_с русскими_буквами\папка_с_русскими_буквами указав для примера путь полностью на латинице, все отлично сохранилось по указанному пути. |
|
Iska, да за кодировку понял из первого Вашего поста.. :) это я как бы объяснил сам себе :)
и кстати, в коде выше, нет строки chcp 1251. вот я за него и говорю. его и пробовал использовать. сам же bat сохранен OEM/866 (пользуюсь Notepad ++). строка с русскими буквами выходит снова не по тому пути,если путь "русский": "X:\╨æ╤â╤à╨│╨░╨╗╤é╨╡╤Ç╨╕╤Å\╨¢╨╡╨╜╨░ ╨Ü\╨á╨╡╨╖╨╡╤Ç╨▓╨╜╤ï╨╡ ╨▒╨░╨╖╤ï 1╨í" |
а если в коде стоит \\server\drive_name\New folder\New folder\New folder, то код отрабатывается успешно по этому пути. "русский" путь, код минует и пишется с начала в корень диска, где имя диска на латинице, а затем пошли папки с иероглифами как выше, и в конечной папке архив.
|
Цитата:
Цитата:
Вообще, Notepad++ не самый удачный выбор для работы с пакетными файлами. Самый удачный — Far Manager и его редактор: Пример:
![]() |
Заморил я Вас. сделал, как Вы написали выше, но увы, поверьте, снова "минует" "русский"путь в коде и какого-то черта начинает сохранять с корня диска\╨æ╤â╤à╨│╨░╨╗╤é╨╡╤Ç╨╕╤Å\╨¢╨╡╨╜╨░ ╨Ü\╨á╨╡╨╖╨╡╤Ç╨▓╨╜╤ï╨╡ ╨▒╨░╨╖╤ï 1╨í". ну и если путь на английском, вида: \\server\drive_name\New folder\New folder\End folder, оо все гаразд, архив создается в End folder.
я когда-то, менял кодировку в cmd на этой windows Server 2003, думается все отсюда и растет. P.S. да черт с той белибердой, ничего не мешает создать отдельно папку на латинице и сохранять архивы туда. |
Время: 21:08. |
Время: 21:08.
© OSzone.net 2001-