【发布时间】:2019-02-04 18:23:32
【问题描述】:
我正在尝试将 VBS 文件作为 Azure Batch 任务启动,但我不断收到无法找到脚本文件的错误。
这是一个有效的命令:
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 Script Host 版本 5.8 版权所有 (C) Microsoft 公司。保留所有权利。
输入错误:找不到脚本文件 "D:\batch\tasks\applications\ffmpeg3.42019-02-01-19-50\ffmpeg-3.4-win64-static\bin\scan_run1.vbs"
我很确定 vbs 在那里,因为在完全相同的位置调用 ffmpeg.exe 可以正常工作。
当我将 ZIP 文件作为包上传时,Azure 门户是否会从 ZIP 文件中删除 VBS?那里发生了什么?
谢谢。
原来当我替换应用程序包时,Azure 门户并没有更新它。所以它有“scan_run.vbs”但没有“scan_run1.vbs”,即使我端的ZIP文件有它。
【问题讨论】:
-
我认为还有别的东西,所以你的任务有一个包,你用 *.bat 更新了它,它工作了,然后一旦你用新文件更新了包 == 1) 你重新上传包了吗? 2) 您是否将它作为另一个任务或相同任务重新运行? docs.microsoft.com/en-us/azure/batch/batch-application-packages 环境变量的设置方式等有很多细节。应用程序包是池级别或任务级别,在您的情况下,场景是任务级别。
-
Continue... 如果您使用
batch-explorer之类的工具,您将能够挖掘节点中的折叠结构并查看文件是否存在。对我来说,这是某些user error类别的明显案例,您是否尝试过使用版本号?它适用于版本号吗? 请注意If a specified package and version is already installed on the node, the package is not downloaded and the existing package is used.请告诉我进展如何。谢谢。 -
Further:这与您在 zip 本地看到的内容无关,当您使用新内容更新现有的包并在现有节点中尝试它时一切都取决于节点级别的机制,即如果您有不同版本的包,请参考我分享的链接。首先,尝试使用版本和包,其次,如果您过于频繁地更改相同的包,那么明智的设计我建议您使用应用程序版本功能,第三,如果您想更新相同的包,您需要确保任务具有支持机制到位。
标签: azure batch-processing azure-batch