执行VBS文件的Azure批处理任务问题

时间:2019-02-04 18:23:32

标签: azure batch-processing azure-batch

我正在尝试将VBS文件作为Azure批处理任务启动,并且不断收到错误消息,指出找不到脚本文件。

这是一个有效的命令:

string appPath = String.Format("%AZ_BATCH_APP_PACKAGE_{0}#{1}%", appPackageId, appPackageVersion);
string taskCommandLine = String.Format("cmd /c {0}\\ffmpeg-3.4-win64-static\\bin\\ffmpeg.exe -i {1} -vcodec libx264 -crf 28 -c:a aac -b:a 128k {2} & del {3} & rename {4} {5}", appPath, inputMediaFile, outputMediaFile, inputMediaFile, outputMediaFile, inputMediaFile);

这是正确的,但是在输入文件上触发ffmpeg之前,我想先对ffprobe进行一些检查,然后再使用.bat进行替换,因此我想在VBScript中做到这一点。

string appPath = String.Format("%AZ_BATCH_APP_PACKAGE_{0}#{1}%", appPackageId, appPackageVersion);
string taskCommandLine = String.Format("cmd /c cscript {0}\\ffmpeg-3.4-win64-static\\bin\\scan_run1.vbs {1} {2}", appPath, inputMediaFile, outputMediaFile);

这将导致:

  

Microsoft(R)Windows脚本主机版本5.8版权所有(C)Microsoft   公司。保留所有权利。

     

输入错误:找不到脚本文件   “ D:\ batch \ tasks \ applications \ ffmpeg3.42019-02-01-19-50 \ ffmpeg-3.4-win64-static \ bin \ scan_run1.vbs”

我非常确定vb在那里,因为在完全相同的位置调用ffmpeg.exe可以正常工作。

当我将其作为包上传时,Azure门户是否从ZIP文件中剥离了VBS?那里发生了什么事?

谢谢。


结果证明,替换我的应用程序包时,Azure Portal不会更新。因此,即使我那头的ZIP文件有“ scan_run.vbs”,也没有“ scan_run1.vbs”。

1 个答案:

答案 0 :(得分:4)

这将有助于更好地理解,实质上,简短的答案是这样的:

此处引用的文档:https://docs.microsoft.com/en-us/azure/batch/batch-application-packages

  

类似于池,您可以为池指定应用程序包引用。   任务。当任务计划在节点上运行时,软件包为   在任务的命令行之前下载并提取   被执行。 如果已安装指定的软件包和版本   节点,该软件包未下载,而现有软件包为   使用

详细信息

就像我在评论中提到的那样,如果您有不同版本的应用程序包,建议使用。

很高兴您正在探索这些错误,因为这将有助于围绕您的应用程序更好地设计这一概念。

建议

此处详细介绍了版本的工作原理:

其他:

常见陷阱

  • 如果用户应用程序正在通过API或手动通过应用程序pkgs进行升级,请确保正确上传了软件包, Programmaticvally 通常non async的行为会导致问题,因此请务必等待以便在Batch创建一个池并继续之前完成升级。