在 POWERSHELL 中删除 JPG 名称的前缀,直到“_”符号

Delete Prefixes of JPG names till '_'-symbol in POWERSHELL

提问人:Marylink_27 提问时间:9/18/2023 更新时间:9/18/2023 访问量:41

问:

日安!

我们有一个文件夹,其中包含许多以以下格式命名的JPG文件:“1_abcd_0000.jpg”,“12_defg_0001.jpg”,“123_ghij_0002.jpg”。

我需要剪切这些名称的第 1 部分,直到包含第 1 个拆分“_”符号。

我的代码是:

$DirRank=New-Object 'system.collections.generic.dictionary[string,int]' $mainfolder=“C:\用户” Get-ChildItem $mainfolder |%{Rename-Item $.fullname $.Name.Split(“_”)[1]} //这里有一个错误

以下是代码运行后的 2 个问题:

  1. 文件名剪切到最后一个拆分的“_”符号,而不是第一个;文件的新格式为“0001”、“0002”等;
  2. 由于名称重复,无法批量保存新文件。

请帮助更正代码以重命名文件。

谢谢!

$DirRank=New-Object 'system.collections.generic.dictionary[string,int]' $mainfolder=“C:\用户” Get-ChildItem $mainfolder |%{Rename-Item $.fullname $.Name.Split(“_”)[1]} //这里有一个错误

PowerShell 拆分 重复 JPEG 文件重命名

评论


答:

1赞 lit 9/18/2023 #1

此正则表达式将所有内容重新调整到第一个 LOW LINE(下划线)。问号使它不贪婪。

$_.Name -replace '^.*?_(.*)','$1'

这不会解决文件名重复的问题。创建重复名称时,您的业务规则是什么?

评论

0赞 lit 9/18/2023
我明白这一点,答案中的代码将删除前缀。当这导致文件名已经存在时,需要发生什么?
0赞 Marylink_27 9/18/2023
我们用前缀批量重命名了照片。现在我们需要将照片加载到网络存储中,以通过唯一代码在照片上创建链接,没有 1-st 前缀(数字直到“_”符号)。主要思想是我们可以在将订单发送给客户之前检查当前商品的照片。主要问题是名称中的前缀 - 项目编号是唯一的,如果我们削减前缀,就不会有重复。
0赞 lit 9/18/2023
删除前缀是否有可能创建问题中指定的重复文件名?"New files can't be saved in bulk because of duplicates of names. "
0赞 Marylink_27 9/18/2023
我描述了我的代码的情况:我的版本删除了所有符号,直到最后一个低线,并将格式保存为最后一个计数器 0001、0002 等。
0赞 Marylink_27 9/18/2023
还有一个问题:如果我们也需要删除 LOW LINE,为什么 QUESTION SIGN 应该放在 LOW LINE 之前,而不是放在它之后?$_.名称 -replace '^.*_?(.*)','$1'