Date Powershell任务计划中的日期格式错误

Date Powershell任务计划中的日期格式错误,date,powershell,windows-task-scheduler,Date,Powershell,Windows Task Scheduler,我的问题只发生在windows中。。。(祝福窗户…) 如果我在powershell中运行此脚本: schtasks.exe /create /tn "Test_22" /tr "powershell.exe C:\site.org\tasks\Test_22\Test_22.ps1" /sc once /st 17:22 /sd (get-date (get-date -Date "2013-09-10") -Format dd/MM/yyyy) /ru System /rl HIGHEST

我的问题只发生在windows中。。。(祝福窗户…)

如果我在powershell中运行此脚本:

schtasks.exe /create /tn "Test_22"  /tr "powershell.exe C:\site.org\tasks\Test_22\Test_22.ps1"  /sc once /st 17:22 /sd (get-date (get-date -Date "2013-09-10") -Format dd/MM/yyyy) /ru System /rl HIGHEST  
工作完全符合我的要求!但这只适用于语言环境为西班牙语的计算机。区域设置为英语的失败,因为2013年9月10日表示2013年10月9日。那没关系。。。问题是,如果我这样做:

((Get-Culture).DateTimeFormat).ShortDatePattern
它并没有像应该的那样返回MM/dd/yyyyy,但是M/d/yyyy是不正确的,这是由于一些令人惊讶的原因,因为schtasks.exe与2013年10月9日和2013年10月9日不一样

是否有任何方法可以修复此问题,而无需执行以下操作:

switch (((Get-Culture).DateTimeFormat).ShortDatePattern) {
   case M/d/yyyy : format = StupidWindows
}
或者类似的

值得一提的是,我不是powershell的专家,所以可能最愚蠢的是我而不是windows(尽管经过一段时间的调查,我非常确定最愚蠢的是windows而不是我…)

这是怎么回事(为了可读性,使用backtick转义字符分成多行):

如果您使用的是Powershell 3,请同时查看PSScheduledJobs模块。

如何(为便于阅读,请使用倒勾转义字符将其分成多行):

如果您使用的是Powershell 3,请同时查看PSScheduledJobs模块

$StartDate = New-Object -TypeName DateTime -ArgumentList:(2013,09,10)
$FormatHack = ($([System.Globalization.DateTimeFormatInfo]::CurrentInfo.ShortDatePattern) -replace 'M+/', 'MM/') -replace 'd+/', 'dd/'

schtasks.exe /create 
    /tn "Test_22" `
    /tr "powershell.exe C:\site.org\tasks\Test_22\Test_22.ps1" `
    /sc once `
    /st 17:22 `
    /sd $StartDate.ToString($FormatHack) `
    /ru System `
    /rl HIGHEST