如果文件不是以日期开头,则在 powershell 中将日期添加到文件名前
Prepend date to filename in powershell if the file does not start with a date already
使用 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}
使用 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}