Функция Azure в PowerShell для распаковки файла

Я пытаюсь преобразовать несколько файлов, сжатых в архив .tar.gz, в один файл. Для этого мне нужно сначала распаковать файл.

У меня есть копия 7z.exe, загруженная в каталог, и локальный вызов команды работает

.\7z.exe x *.tar.gz

Я загрузил exe в каталог wwwroot / poshUntar вместе с исполняемым файлом run.ps1 и с помощью онлайн-редактора могу выполнить сценарий PowerShell. Я, конечно, ожидал бы, что моя функция вообще не сработает, поскольку я не предоставляю значения переменных, но я не ожидал бы, что это приведет к ошибке при поиске файла 7z.exe.

.\7z.exe : The term '.\7z.exe' is not recognized as the name of a cmdlet, 
function, script file, or operable program. Check the spelling of the name, or 
if a path was included, verify that the path is correct and try again.
At D:\home\site\wwwroot\poshUntar\run.ps1:10 char:1
+ .\7z.exe x *.tar -o logs
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (.\7z.exe:String) [], CommandNot 
   FoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Как правильно вызывать исполняемый файл внутри функции PowerShell в Azure?

введите здесь описание изображения


person Steph Locke    schedule 14.06.2016    source источник


Ответы (1)


Я считаю, что вам также нужно загрузить 7z.dll в каталог wwwroot.

Не могли бы вы попробовать использовать следующий фрагмент кода в своем скрипте?

Set-Location D:\home\site\wwwroot\poshUntar
.\7z.exe x *.tar.gz 
.\7z.exe x *.tar -ologs
person Ling Toh    schedule 15.06.2016
comment
К вашему сведению: для таких инструментов, как 7z, которые вы, возможно, захотите повторно использовать в нескольких функциях, вы можете поместить их в папку D:\home\site\tools. Среда выполнения автоматически добавляет это в PATH. - person mathewc; 15.06.2016