【Azure Batch】在批次處理的Task中如何讓它執行多個CMD指令呢

2023-09-13 18:01:28

問題描述

根據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

快速入門:使用 Azure 門戶建立 Batch 帳戶並執行作業 : https://docs.azure.cn/zh-cn/batch/quick-create-portal