我有一个返回上周六日期的方法,它曾经在我运行它的旧地方工作,但是我将其移到新位置运行它,但它不起作用。我不确定这个版本的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
有任何想法如何在旧版Powershell版本中添加日期?也许我需要包含或使用诸如数学之类的东西?
答案 0 :(得分:0)
因为您的DayOfWeek
成员是类型System.DayOfWeek
的枚举,所以powershell试图使用System.Enum
类型执行加法,但是该类型不支持加法,除非它具有Flags
属性。纠正此问题的方法是翻转操作数,以使DayOfWeek
被强制转换为System.Int32
:
1 + $date.DayOfWeek
(对于样式)也可以自己进行排版:
[int]$date.DayOfWeek+1