我正在尝试在批处理StartTask中运行powershell脚本,但遇到了错误。以下是创建池startTask时出错的代码:
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 / c”的一行中。但这不起作用,并不断提出以下错误:
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 :(得分:0)
我遇到了类似的问题。下面是我必须编写“命令”值,但使用你的变量:
cmd /c powershell.exe %AZ_BATCH_NODE_STARTUP_DIR%\PrepPython.ps1
答案 1 :(得分:0)
您似乎在Windows上运行命令。您的环境变量格式不正确 - 当它们应为$VAR
格式时,您使用的是Linux %VAR%
格式。此外,看起来您的目录分隔符斜杠是混合的(例如,您的第一个复制命令)。