为什么Get-Date抛出索引超出了数组错误的范围?

时间:2017-10-07 00:10:43

标签: powershell date

我正在开发一个PowerShell脚本,它在计算机中搜索某个字符串并将结果放入一个数组中。完成后,它会将数组的结果打印到日志文件中。我遇到的问题是命名文件。我想把名字说成“AAV- date .log”。其中 date 是此格式的当前日期和时间:YmdHMS。

获取日期的方式是使用Get-Date -UFormat $Y$m$d$H$M$S并存储在变量中,看起来像$Date = Get-Date -UFormat $Y$m$d$H$M$S,然后在创建日志文件时调用$Date。问题是,当它运行时,它会抛出一个错误,说“索引超出了数组的范围”。我已经尝试了Get-Date行,但仍然得到错误。这是完整的错误消息:

Get-Date : Index was outside the bounds of the array.
At C:\Users\*******\Documents\*******\*********\*****\scanner.ps1:4 char:9
+ $Date = Get-Date -UFormat $Y$m$d$H$M$S
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-Date], IndexOutOfRangeExceptio 
   n
    + FullyQualifiedErrorId : System.IndexOutOfRangeException,Microsoft.PowerShell. 
   Commands.GetDateCommand

我尝试了Google,但在PowerShell中没有任何与Get-Date相关的内容。任何想法,为什么它抛出这个错误和我做错了以及如何解决它?提前谢谢!

1 个答案:

答案 0 :(得分:0)

-Uformat正在查找前面百分号的字符。不是美元符号,表示PowerShell中的变量名称

Get-Date -UFormat "%Y%m%d%H%M%S"

您发送的是空白字符串,因为未声明这些变量。如果你也运行它也会得到同样的错误

Get-Date -UFormat ""

docs.microsoft.com

有更详细的信息