如何在 Azure Batch 任务中调用预安装的应用程序?
How I can call pre-installed application in Azure Batch task?
我将 sqlcmd 实用程序安装到 Azure Batch 节点(这是常规 windows VM)。所以,我在这个 VM 上有 bcp 实用程序。如何在 Azure Batch 作业中指定 bcp.exe 的路径?
using (BatchClient batchClient = BatchClient.Open(cred))
{
string jobId = "1";
CloudJob job = batchClient.JobOperations.GetJob(jobId);
job.Commit();
string taskCommandLine = String.Format("cmd c/ 'D:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp.exe'");
string uniqueIdentifier = Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", "");
string taskId = String.Format(name.Replace(".", string.Empty) + "-" + uniqueIdentifier);
CloudTask task = new CloudTask(taskId, taskCommandLine);
task.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.Admin, scope: AutoUserScope.Task));
batchClient.JobOperations.AddTask(jobId, task);
}
像
这样指定完整路径的方式是否正确
string taskCommandLine = String.Format("cmd c/ 'D:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp.exe'");
您有几种方法可以在不同的路径中启动命令:
- 在
PATH
environment variable中指定可执行目录。确保您使用的是 shell 命令 (cmd.exe
).
- 将您的工作目录更改为包含可执行文件的正确目录
- 根据任务命令行中的 post 指定完整路径。
对于您的特定情况,您的命令格式不正确。用cmd.exe
执行时,应该是cmd.exe /c <your command>
.
我将 sqlcmd 实用程序安装到 Azure Batch 节点(这是常规 windows VM)。所以,我在这个 VM 上有 bcp 实用程序。如何在 Azure Batch 作业中指定 bcp.exe 的路径?
using (BatchClient batchClient = BatchClient.Open(cred))
{
string jobId = "1";
CloudJob job = batchClient.JobOperations.GetJob(jobId);
job.Commit();
string taskCommandLine = String.Format("cmd c/ 'D:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp.exe'");
string uniqueIdentifier = Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", "");
string taskId = String.Format(name.Replace(".", string.Empty) + "-" + uniqueIdentifier);
CloudTask task = new CloudTask(taskId, taskCommandLine);
task.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.Admin, scope: AutoUserScope.Task));
batchClient.JobOperations.AddTask(jobId, task);
}
像
这样指定完整路径的方式是否正确string taskCommandLine = String.Format("cmd c/ 'D:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp.exe'");
您有几种方法可以在不同的路径中启动命令:
- 在
PATH
environment variable中指定可执行目录。确保您使用的是 shell 命令 (cmd.exe
). - 将您的工作目录更改为包含可执行文件的正确目录
- 根据任务命令行中的 post 指定完整路径。
对于您的特定情况,您的命令格式不正确。用cmd.exe
执行时,应该是cmd.exe /c <your command>
.