2016-12-06 4 views
0

Я пытаюсь запустить скрипт powershell в пакетном StartTask, но встретил ошибку. Ниже приведен код, где я пошел неправильно при создании пула startTask:Неожиданная ошибка токена, создающая задачу запуска .ps1 в лазурной партии

def create_pool(batch_service_client, pool_id, resource_files, node_os_family): 
    print('Creating pool [{}]...'.format(pool_id)) 
    task_commands = [ 
     'copy $AZ_BATCH_TASK_WORKING_DIR/python_tutorial_task.py $AZ_BATCH_NODE_SHARED_DIR', 
     'powershell.exe -command set-executionpolicy remotesigned', 
     "powershell.exe -command $AZ_BATCH_NODE_STARTUP_DIR" + "\\" + "PrepPython.ps1", 
     'pip install azure-batch', 
     'pip install azure-storage', 
     'pip install cryptography'] 
    ... ... 

И позже я обернул эти команды в одну линию крепления «cmd.exe/с» вперед. Но это не сработало и продолжало поднимать следующую ошибку:

At line:1 char:27 
+ $AZ_BATCH_NODE_STARTUP_DIR\PrepPython.ps1 
+       ~~~~~~~~~~~~~~~ 
Unexpected token '\PrepPython.ps1' in expression or statement. 
    + CategoryInfo   : ParserError: (:) [], ParentContainsErrorRecordEx 
    ception 
    + FullyQualifiedErrorId : UnexpectedToken 
... ... 

У кого-нибудь есть идеи об этом?

+0

Привет, спасибо за ваше предложение, но это все еще не работает. И сообщение об ошибке изменяется на: {Аргумент '$ AZ_BATCH_NODE_STARTUP_DIR \ PrepPython.ps1' к параметру -File не существует. Укажите путь к существующему файлу .ps1 в качестве аргумента параметра -File.}. Но я думаю, что существует файл. – user123

+0

@Avshalom. Кроме того, я не думаю, что изменение «-команды» на «-файл» является проблемой, поскольку я тестировал скрипт на своем локальном компьютере, оба работали очень хорошо. – user123

+0

вы можете попробовать следующее: 'powershell.exe -file "$ AZ_BATCH_NODE_STARTUP_DIR \ PrepPython.ps1" ' – Avshalom

ответ

0

Похоже, что вы работаете ваши команды на Windows. Ваши переменные среды находятся в неправильной форме - вы используете формат Linux $VAR, если они должны быть %VAR%. Кроме того, похоже, что ваши разделители разделителей каталогов смешиваются (например, ваша первая команда копирования).

+0

О, это хороший момент! Я постараюсь изменить это, спасибо за напоминание! – user123

0

Я столкнулся с подобной проблемой. Ниже, как я должен был составить «команду» значение, но используя переменные:

cmd /c powershell.exe %AZ_BATCH_NODE_STARTUP_DIR%\PrepPython.ps1 
+0

О, я забыл упомянуть, что эти команды были позже скомпонованы в эту форму. – user123

Смежные вопросы