我想推出一个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);
这会导致:
微软(R)Windows脚本主机版本5.8版权所有(C)微软公司。版权所有。
输入错误:无法找到脚本文件 “d:\批次\任务\应用程序\ ffmpeg3.42019-02-01-19-50 \的ffmpeg-3.4-Win64的静态\ BIN \ scan_run1.vbs”
我敢肯定的VBS是存在的,因为在同一个位置调用ffmpeg.exe工作正常。
是在Azure门户剥出VBS出来的ZIP文件,当我把它上传的包?这是怎么回事呢?
谢谢。
当我更换原来Azure的门户网站没有更新的应用程序包。所以它有“scan_run.vbs”,而不是“scan_run1.vbs”即使在我结束ZIP文件有它。
这将有助于更好地理解,基本上是简单的答案是这样的:
从这里参考文件:https://docs.microsoft.com/en-us/azure/batch/batch-application-packages
类似于一个游泳池,您可以指定任务的应用程序包的引用。当一个任务计划的节点上运行,将软件包下载并执行任务的命令行之前提取。如果指定的包和版本已在节点上安装,包未下载并使用现有的包。
详情
就像我在评论中提到的,如果你有不同版本的应用程序包的建议。
这是伟大的,你正在探索这些错误,因为这会在你申请这个概念的更好的设计帮助。
建议
If you have all tasks sharing same application package, I would recommend using Pool Level app pkgs
https://docs.microsoft.com/en-us/azure/batch/batch-application-packages#install-pool-application-packagesIf you have task level and you are changing the content of existing app pkgs
使用应用程序PKS与版本,并与应用PKGS的不同内容版本不同。如何版本的作品在这里详细描述:
附加功能:
常见的问题
non async
行为将导致一个问题,所以一直等待uplaod完成批量创建一个游泳池和收益之前。