我正在编写一个简单的脚本,用于获取日期、获取 6 个月后的日期,并将这两个日期复制到剪贴板。运行时,脚本应该复制:
Terminated MM/dd/yy - Delete from AD on MM/dd/yyyy
但它只是复制
Terminated MM/dd/yyyy - Delete from AD on
$currentDate = Get-Date -Format "MM/dd/yyyy"
$futureDate = Get-Date.AddMonths(6) -Format "MM/dd/yyyy"
$copyThisText = "Terminated " + $currentDate + " - Delete from AD on " + $futureDate
$copyThisText | clip
Run Code Online (Sandbox Code Playgroud)
它失败的原因是,一旦使用-Format "MM/dd/yyyy"它格式化日期,就会将该变量转换为 的类型string,而不是datetime意味着普通datetime方法不再可用。
出于演示目的,我尝试尽可能少地进行更改。我下面所做的是设置$currentDateand$futureDate而不将它们隐式转换为字符串。然后,当您连接 中的字符串时,我会按照您想要的方式格式化它们$copyThisText。
这将做你想做的事。
$currentDate = Get-Date
$futureDate = (Get-Date).AddMonths(6)
$copyThisText = "Terminated " + $currentDate.tostring("MM/dd/yyyy") + " - Delete from AD on " + $futureDate.tostring("MM/dd/yyyy")
$copyThisText | clip
Run Code Online (Sandbox Code Playgroud)
此外,有多种方法可以格式化字符串,这有助于提高代码的可读性。感谢@Santiago Squarzon 的建议 -
"Terminated {0:MM/dd/yyyy} - Delete from AD on {1:MM/dd/yyyy}" -f $currentDate, $futureDate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6063 次 |
| 最近记录: |