导出到.csv时将时间戳插入到文件名中

时间:2017-10-31 15:41:36

标签: windows file powershell timestamp metadata

我正在尝试将时间戳插入PowerShell脚本生成的输出文件的文件名

因此,它不是filelist.csv,而是使用实际时间戳(outpufile的修改时间)命名输出文件,例如YYYYMMDD_HHMMSS_filelist.csv

Get-childitem -recurse -file | select-object @{n="Hash";e={get-filehash -algorithm MD5 -path $_.FullName | Select-object -expandproperty Hash}},lastwritetime,length,fullname | export-csv filelist.csv -notypeinformation

有关上述行中为输出文件加时间戳的缺失代码是什么建议吗?

2 个答案:

答案 0 :(得分:2)

变化:

export-csv filelist.csv -notypeinformation

要:

Export-Csv "$((Get-Date).ToString("yyyyMMdd_HHmmss"))_filelist.csv" -NoTypeInformation

修改 - .ToString()-UFormat,通常

使用.ToString()-Format / -UFormat时,您将传递DateTime对象并返回格式化字符串。在这两种情况下,您都必须指定您所追求的字符串的格式。指定此格式的方式不同。

查看可与ToString() / -Format一起使用的this list of .NET format strings。请注意如何MM为01-12个月,M为1-12个月,mm为00-59分钟。

-UFormat is documented to use UNIX formatting。我根本不熟悉这个,但是Notes部分详细介绍了这一点。您可以在此处看到%m%M

的月份

答案 1 :(得分:1)

在您的文件名中,执行以下操作:

Export-Csv -Path "$(Get-Date -UFormat '%Y%m%d_%H%M%S')_filelist.csv" -NoTypeInformation