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

问题描述 投票:0回答:1

美好的一天!

我们有许多 JPG 文件的文件夹,其命名格式如下:“1_abcd_0000.jpg”、“12_defg_0001.jpg”、“123_ghij_0002.jpg”。

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

我的代码是:

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

代码运行后出现2个问题:

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

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

谢谢!

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

powershell split duplicates jpeg file-rename
1个回答
0
投票

此正则表达式会将所有内容替换为第一个低线(下划线)。

$Name = $Name -replace '^.*?_(.*)','$1'
© www.soinside.com 2019 - 2024. All rights reserved.