代码之家  ›  专栏  ›  技术社区  ›  Joe Schmoe

如何使用PowerShell以毫秒为单位输出文件创建时间?

  •  3
  • Joe Schmoe  · 技术社区  · 2 年前

    我正在尝试使用PowerShell以毫秒为单位输出文件创建时间。

    此操作有效,但仅输出秒数:

    Get-ChildItem *_971*.* -Force | Select-Object FullName, CreationTime
    

    如果我尝试这样格式化时间戳:

    Get-ChildItem *_971*.* -Force | Select-Object FullName, CreationTime.ToString('yyyyMMdd HH:mm:ss.fff')
    

    我得到一个错误:

    Select-Object : A positional parameter cannot be found that accepts argument 'yyyyMMdd HH:mm:ss.fff'.
    At line:1 char:33
    
    2 回复  |  直到 2 年前
        1
  •  3
  •   Santiago Squarzon    2 年前

    你需要使用 calculated property 计算表达式 CreationTime.ToString('yyyyMMdd HH:mm:ss.fff') 在每个管道项目上:

    Get-ChildItem *_971*.* -Force |
        Select-Object FullName, @{ N='CreationTime'; E= { $_.CreationTime.ToString('yyyyMMdd HH:mm:ss.fff') }}
    
        2
  •  0
  •   KaMuench    2 年前

    一个简单的方法可以是迭代的输出 获取子项 并输出格式化的时间。

    Get-ChildItem *_971*.* -Force | ForEach-Object {$_.CreationTime.ToString('yyyyMMdd HH:mm:ss.fff')}
    
    推荐文章