使用powershell,我想在多个文件的创建日期前面加上前缀,但前提是文件名还没有以日期开头。对于其他文件,代码应跳过它们。
我已经成功地使用以下命令在日期前加上前缀,但我想让它以文件名不以任何日期格式(或者可能根本不以任何数字)开头为条件。
Dir | Rename-Item -NewName {(Get-Date $_.CreationTime -Format "yyyy-MM-dd ")+ $_.BaseName+$_.Extension}
您可以使用正则表达式来匹配模式。我不是最好的正则表达式,但在其他地方找到了以下正则表达式,用于匹配您指定格式的日期。我只是采用了您现有的代码并插入了一个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}