使用PowerShell,我想预先设置许多文件的创建日期,但前提是文件名尚未以日期开头。对于其他文件,代码应该跳过它们。
我已成功使用以下命令预先添加日期,但我想以不以任何日期格式(或者可能是任何数字)开头的文件名为条件。
Dir | Rename-Item -NewName {(Get-Date $_.CreationTime -Format "yyyy-MM-dd ")+ $_.BaseName+$_.Extension}
答案 0 :(得分:2)
您可以使用正则表达式匹配模式。我对正则表达式不是最好的,但在其他地方找到以下正则表达式来匹配您指定格式的日期。我刚刚接受了您现有的代码并插入了Where-Object
来过滤掉已经匹配该模式的文件。
$regex = [regex] '^\d{4}-\d{2}-\d{2}'
Get-ChildItem | Where-Object {!($_.Name -match $regex)} | Rename-Item -NewName {(Get-Date $_.CreationTime -Format "yyyy-MM-dd ")+ $_.BaseName+$_.Extension}