根据此Code-Golf提示,在PowerShell中,您可以使用科学记数法轻松生成10的幂数:https://codegolf.stackexchange.com/a/193/6776
即1e7
产生数字10,000,000
.
如果我将此值传递给get-date
(或别名date
,为了代码高尔夫的目的)我得到一秒钟:ie date 10000000
=> 01 January 0001 00:00:01
.
然而,如果我使用科学记数法,即使使用括号(即date (1e7)
),我也会收到错误:
Get-Date : Cannot bind parameter 'Date'. Cannot convert value "10000000" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
At line:1 char:6
+ date (1e7)
+ ~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetDateCommand
Run Code Online (Sandbox Code Playgroud)
题
有没有办法将科学记数法与Get-Date的默认(日期)参数一起使用?
这是因为1e7
输出为double,所以你只需要将其转换为整数:
date ([int]1e7)
Run Code Online (Sandbox Code Playgroud)
如果GetType
在输出上调用方法,则可以检查:
(1e7).GetType() | Format-Table -AutoSize
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Double System.ValueType
Run Code Online (Sandbox Code Playgroud)
编辑: 最短的脚本可能是:
1e7l|date
Run Code Online (Sandbox Code Playgroud)
这取自PetSerAls注释 - 只是使用管道而不是括号删除了另一个字符.
归档时间: |
|
查看次数: |
344 次 |
最近记录: |