我正在尝试将时间戳插入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
有关上述行中为输出文件加时间戳的缺失代码是什么建议吗?
答案 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