我有一个Azure Web项目,它在ServiceDefinition.csdef中配置了启动任务。
<Startup>
<Task commandLine="Task.cmd" executionContext="elevated" taskType="simple" />
</Startup>
在Task.cmd中,我有需要Web项目路径的代码。有点像这样:
InstallService.exe /webpath="%cd%"
但启动任务中的目录与实际生产路径不同。 (E:\ approot vs. E:\ siteroot \ 0)。
有没有办法在我的Task.cmd中获取生产路径?
由于
答案 0 :(得分:1)
您将使用一小部分PowerShell!您必须创建一个PowerShell脚本并修改cmd。 您的整个PowerShell文件(startup.ps1)应如下所示:
Import-Module WebAdministration
$site = Get-ChildItem IIS:\Sites | Where-Object {$_.State -eq 'Started'}
$siteRoot = $site.PhysicalPAth
$fileExe = "InstallService.exe"
& $fileExe /webpath=$siteRoot
请注意,这未经过测试,因此无法保证正常工作。 你的新startup.cmd应如下所示:
@echo off
powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out
powershell .\startup.ps1 2>> err.out
请花点时间浏览this good article。