我有一个重命名脚本,一小部分让我遇到问题。我需要使用文件路径中的分割重命名jpg文件名的一部分。
文件示例:
"C:\WK53\WK5330002\WK44006679\spin1\01_img_0029.JPG"
在上面的例子中,我想将01_img_0029.JPG
重命名为WK44006679_0029.JPG
,所以将文件名的字符串0,1替换为文件路径的-3。
我可以推导出我想要的名称的两个部分,但我遇到了实际重命名逻辑的问题。以下拆分隔离' WK44006679'和第二个分离物'''
$jpgToRename = GCI -Path $pathToRename -Filter '*.jpg' -R | ForEach-Object{
$newJpgASIN = $jpg.FullName.split('\')[-3]
$oldJpgName = $jpg.Name.split('_')[2]
}
我试了这个没有运气:
$jpgToRename = GCI -Path $pathToRename -Filter '*.jpg' -R | ForEach-Object{
$newJpgASIN = $jpg.FullName.split('\')[-3]
$oldJpgName = $jpg.Name.split('_')[2]
Rename-Item -NewName {$_.Name -replace $oldJpgName,'_'+$newJpgASIN}
}
感谢任何帮助。谢谢!
答案 0 :(得分:1)
这样的事情怎么样?
$splitPath = ("C:\WK53\WK5330002\WK44006679\spin1\01_img_0029.JPG").Split("\\")
$newName = $splitPath[3] + ($splitPath[-1][2..($splitPath[-1].Length - 1)] -join "")
答案 1 :(得分:1)
对Jordan Regan的最后建议进行了微小的改动。
$splitPath = ("C:\WK53\WK5330002\WK44006679\spin1\01_img_0029.JPG").Split("\\")
$YoMammy = -Join($splitPath[3],'_',$(($splitPath[-1]).split('_')[-1]))