如何仅为文件名开头是单个数字的文件添加前缀0?
仅给开头单个数字的文件名添加前缀0的PowerShell解决方案
要实现仅对开头为单个数字的文件名添加前缀0,同时保留两位数字开头的文件名不变,你可以通过正则匹配过滤或条件判断精准控制重命名逻辑,以下是两种可行方案:
方案一:先过滤再重命名
通过Where-Object筛选符合条件的文件,再执行重命名:
Get-ChildItem | Where-Object { $_.BaseName -match '^\d\D' } | Rename-Item -NewName { '0' + $_.Name }
逻辑说明:
Get-ChildItem(简写dir):获取当前目录下的所有文件Where-Object { $_.BaseName -match '^\d\D' }:只保留文件名开头是单个数字且数字后紧跟非数字字符的文件(避免误改"12 Photo.jpg"这类两位数字开头的文件)Rename-Item -NewName { '0' + $_.Name }:给符合条件的文件名直接添加前缀0
方案二:在重命名时做条件判断
如果不想提前过滤,也可以在NewName的脚本块里直接判断,同时支持预览效果:
Get-ChildItem | Rename-Item -NewName { if ($_.BaseName -match '^\d($|\D)') { '0' + $_.Name } else { $_.Name } } -WhatIf
逻辑说明:
-WhatIf:参数用于预览重命名结果,确认无误后可删除该参数执行实际修改- 正则
^\d($|\D):匹配开头单个数字后,要么是文件名结束(如"1.jpg"),要么是紧跟非数字字符(如"1 Photo.jpg"),覆盖更多边界场景 - 符合条件则添加前缀0,不符合则保持原文件名不变
内容的提问来源于stack exchange,提问作者Michal Balek
相关产品推荐
相关产品推荐

