Запуск копирования AzCopy из пакетного файла при ошибке командной строки Windows

Я использую AzCopy для копирования файла с локального сервера в Azure и придумываю следующую неудачную операцию: команда запускается из пакетного файла. Если та же команда запускается из командной строки, операция выполняется успешно.


Запустить из командного файла - не удается:

C: \ ftp> AzCopy / Источник: C: \ ftp \ / Dest: "https://companystrg01.file.core.wind ows.net/bss?sv=2016-05-31&si=bss-supersecretstring "/ S

Неполная операция с той же командной строкой обнаружена в каталоге журнала "C: \ Users \ Administrator \ AppData \ Local \ Microsoft \ Azure \ AzCopy", вы хотите возобновить операцию?

Выберите «Да», чтобы продолжить, выберите «Нет», чтобы перезаписать журнал и начать новую операцию. (Да / Нет) y

[2018/03/19 13:50:22] [ОШИБКА] C: \ ftp \ board \ file.TXT: Ошибка передачи ed.

Удаленный сервер возвратил ошибку: (403) Запрещено. HttpStatusMessage: серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. RequestId:

Время: Пн, 19 Мар 2018 03:50:05 GMT Завершено 0 из 1 файла (ов). [2018/03/19 13:50:22] Итоги трансфера:

Всего передано файлов: 1

Передано успешно: 0

Пропущено: 0

Ошибка передачи: 1

Прошедшее время: 00.00: 00: 04

================================

Запустить из командной строки - успешно:

C: \ ftp> AzCopy / Источник: C: \ ftp \ / Dest: "https://companystrg01.file.core.wind ows.net/bss?sv=2016-05-31&si=bss-supersecretstring "/ S

[2018/03/19 13:56:57] [ПРЕДУПРЕЖДЕНИЕ] Командная строка "AzCopy / Source: C: \ ftp \ board \ / D est:" https://companystrg01.file.core.windows.net/bss?sv=2016-05-31&si=bss-supersecretstring "/ S" в файле журнала "C: \ Users \ Administrator \ AppData \ Local \ Microsoft \ Azure \ AzCopy \ AzCopy.jnl" отличается от введенного вами.

[2018/03/19 13:56:57] [ПРЕДУПРЕЖДЕНИЕ] В каталоге журнала «C: \ Users \ Administrator \ AppData \ Local \ Microsof t \ Azure \ AzCopy» обнаружена неполная операция с другой командной строкой.

Хотите перезаписать журнал, чтобы начать новую операцию? Выберите «Да», чтобы перезаписать, выберите «Нет», чтобы отменить текущую операцию. (Да / Нет) y Перезаписать https://companystrg01.file.core.windows.net/bss/file.TXT с C: \ ftp \ board \ file.TXT? (Да / Нет / Все) y Завершено 1 из 1 файла (ов). [2018/03/19 13:57:06] Итоги трансфера:

Всего передано файлов: 1

Успешный перевод: 1

Пропущено: 0

Ошибка передачи: 0

Прошедшее время: 00.00: 00: 09

C: \ ftp>


Буду признателен за руководство.

Спасибо.


person Figment    schedule 19.03.2018    source источник


Ответы (2)


Вам нужно экранировать специальные символы в командном файле. См. Аналогичный вопрос здесь: Пакетное экранирование символов

person Zhaoxing Lu    schedule 19.03.2018

Просто экранируйте знак% с помощью %% в вашем токене SAS, даже если он заключен внутрь!

person Shailen    schedule 01.04.2021