You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 7.0.3中用Get-Date替换等式右侧值时语法报错求助

没问题,我来帮你搞定这个PowerShell的问题~

首先得说,你完全不需要用Invoke-Command来做这件事——这个cmdlet主要是用来在本地或者远程机器上执行脚本块/命令,而Get-Date本身就是可以直接调用的本地命令,你的错误是因为语法用错了。

先给你直接上正确的写法,再慢慢解释:

如果你想只比较日期部分(忽略时分秒)(这应该是你大概率的需求,因为Get-Date默认会返回当前的完整时间),可以用这个命令:

[datetime]'2020-08-09' -eq (Get-Date).Date

解释一下:(Get-Date).Date会返回当前日期的DateTime对象,时间部分被自动设为00:00:00,和左边的[datetime]'2020-08-09'(默认时间也是00:00:00)比较,只要当前日期是2020年8月9日,就会返回true。

如果真的要比较完整的日期时间(包括毫秒),那命令可以写成:

[datetime]'2020-08-09 00:00:00' -eq Get-Date

不过这种情况几乎不可能返回true,因为Get-Date会精确到毫秒,除非你刚好在那一刻执行命令。

再说说你提到的Bash反引号的对应写法:在PowerShell里,Bash的`command`等价于子表达式$(...)(你也可以用反引号,但子表达式$(...)在处理复杂命令或者嵌套的时候更清晰,推荐用这个)。比如如果要构造一个指定日期的Get-Date命令,就可以这么写:

[datetime]'2020-08-09' -eq $(Get-Date -Year 2020 -Month 8 -Day 9)

最后再分析下你之前的错误:你写的[datetime]'2020-08-09' -eq Invoke-Command Get-Date,PowerShell会把Invoke-Command当作一个要比较的值,但它是一个cmdlet,需要正确的调用格式(比如Invoke-Command { Get-Date }),但哪怕这么写也完全没必要——因为Get-Date可以直接执行,根本不需要绕弯子用Invoke-Command。

内容的提问来源于stack exchange,提问作者7_R3X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:52:34