我有一个返回上周六日期的方法,它曾经在我运行它的旧位置上工作,但我将它移动到一个新位置来运行它,它不工作。我不确定这个版本的powerShell是否不同,这就是问题所在。它说PSVersion在新位置是4。旧位置的PSVersion为5.1。
这是我的方法,当我检查$newdate时,在这个运行之后和运行期间,它是空的。
function GetLastSaturdayDate()
{
$date = Get-Date
$newdate = $date.AddDays(-($date.DayOfWeek+1)%7)
return $newdate
}当我在ps命令行运行命令时,它显示以下内容。当我刚刚运行脚本时,我没有看到这个错误消息:
Method invocation failed because [System.DayOfWeek] does not contain a method named 'op_Addition'.
At line:1 char:1
+ $newda = $date.AddDays(-($date.DayOfWeek+1)%7)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound有什么办法让date Any在旧的powershell版本中工作吗?也许我需要包含或使用像数学这样的东西?
发布于 2019-03-26 23:00:56
因为您的DayOfWeek成员是System.DayOfWeek类型的枚举,所以powershell尝试使用System.Enum类型执行加法,但该类型不支持加法,除非它具有Flags属性。纠正这种情况的方法是翻转操作数,这样DayOfWeek就会被强制转换为System.Int32:
1 + $date.DayOfWeek或者(对于样式),您可以自己进行类型转换:
[int]$date.DayOfWeek+1https://stackoverflow.com/questions/55360026
复制相似问题