我有一段代码
$actDate=Get-Date -Format 'yyyy-MM-dd'
Start-job -name "FMLE" -command { cmd.exe /c 'c:\Program Files (x86)\Adobe\Flash Media Live Encoder 3.2\FMLEcmd.exe' /p C:\tasks\testing_2\testing 2_$actDate.xml /ap username:password /ab username:password /l C:\Users\acruz\AppData\Local\Temp\temp.log }我知道,变量$actDate没有在行中被替换,我是怎么做到的?
我的两个问题是:如何将$actDate替换为其值,以及如何将作业结果保存到一个日志中
谢谢你的帮忙
编辑
这也不起作用:
$actDate = (Get-Date -Format 'yyyy-MM-dd')
$Args = ("/p C:\tasks\testing_2\testing 2_$actDate.xml","/ap username:password", "/ab uysername:password", "/l C:\Users\acruz\AppData\Local\Temp\temp.log")
$Args
$j = Start-job -name "FMLE" -ScriptBlock { & 'c:\Program Files (x86)\Adobe\Flash Media Live Encoder 3.2\FMLEcmd.exe' @args } -ArgumentList $args
Get-Job $j.Id
Receive-Job -Job $j | Out-File 'C:\Users\acruz\AppData\Local\Temp\temp.log' -encoding ASCII -append -force 虽然$Args有正确的信息..。
发布于 2013-09-09 21:34:38
我这样做就能让它运转起来:
Start-job -Verbose -ScriptBlock {
$actDate = Get-Date -Format yyyy-MM-dd
cd "c:\Program Files (x86)\Adobe\Flash Media Live Encoder 3.2\"
.\FMLEcmd.exe /p "C:\site.com.mx\tasks\test_23445678\test 23445678_$actDate.xml" /ap user:password /ab user:password /l C:\site.com.mx\task.log
}通过使用-command,它不能工作,因为它根本不替换变量。而且,如果我用-ArgumentList来完成它,或者是替换变量$actDate,所以我想这可能是通过在块中添加整个脚本来实现的。的确,它做到了..。
所以我不知道为什么它不起作用,但这对我来说是个好办法。
发布于 2013-09-09 19:45:52
对于第一个问题,您需要包括使用双引号的路径。如果您可以删除测试2中的空间,请给出建议。
"C:\tasks\testing_2\testing2_$actDate.xml"
若要记录作业的结果,请使用Receive-Job cmdlet。
再试一次:
尝试将所有路径放在双引号中,然后在cmd.exe /c部分之后用单引号包围所有内容,如下所示。尝试用简单的任务来完成更简单的事情,然后尝试增加复杂性。
$job = Start-Job -name "Hel" -Command { cmd.exe /c '"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" /?'}https://stackoverflow.com/questions/18705622
复制相似问题