问题描述
根据Azure Batch的入门文档(使用 Azure 门户创建 Batch 帐户并运行作业 : https://docs.azure.cn/zh-cn/batch/quick-create-portal),创建了Batch Account, Pool, Job, Task. 并且成功运行。
这时候,想要在Batch的Task中执行多个CMD指令,尝试写多行执行。类似如下:
cmd /c "echo %date% %time%"
cmd /c "set AZ_BATCH & timeout /t 90 > NUL"
cmd /c "timeout /nobreak /t 50"
cmd /c "echo 'what is your name?'"
cmd /c "echo %date% %time%"
测试发现,只是执行了第一行指令。那么,如何在Task中执行多个CMD指令呢?
问题解答
其实就是要考虑如何让CMD执行多次指令,所以可以使用" & "连接符。
若要对
<string>
使用多个命令,请用命令分隔符 && 分隔它们。 例如:<command1>&&<command2>&&<command3>
修改后的指令为:
cmd /c "echo %date% %time% & set AZ_BATCH & timeout /t 90 > NUL & timeout /nobreak /t 10 & echo 'what is your name?' & echo %date% %time% & for %I in (1,2,3,4,5,6) do echo '%time%' "
本地执行效果:
Azure Batch Task执行效果:
参考资料
cmd : https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/cmd#remarks
快速入门:使用 Azure 门户创建 Batch 帐户并运行作业 : https://docs.azure.cn/zh-cn/batch/quick-create-portal