TimeSpan 对象的重载 ToString() 方法

TimeSpan 对象的重载 ToString() 方法

使用 PowerShell 时,为什么不能使用重载的 ToString()方法对于 TimeSpan 结构?

$ts = New-TimeSpan -Days 5
$ts.ToString("g")
Cannot find an overload for "ToString" and the argument count: "1".
At line:1 char:13
+ $ts.ToString <<<< ("g")
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

有解决方法吗?

答案1

我认为你想要的是 .NET 4 版本的时间跨度.ToString(),它有 2 个重载,并且你得到的是 .NET 3.5 版本的时间跨度.ToString(),它没有任何重载。如果你看看StackOverflow 上的问题展示了如何让 PS 使用 .NET 4 程序集。

[添加] 按照上面的链接创建配置文件后,我能够成功执行以下命令:

PS C:\Scripts > add-type -Path "C:\Windows\Microsoft.NET\framework64\v4.0.30319\mscorlib.dll"

PS C:\Scripts > $ts = New-Object -Type System.TimeSpan

PS C:\Scripts > $ts.Tostring("g")

0:00:00

相关内容