如何指定要替换的字符在文件名中的位置?
How can I specify the position of the character I want to replace in a filename?
我正在尝试重命名数百个 TIFF 文件以遵循新的命名约定。我现在遇到了一种情况,我想删除或更改文件名中的第 4 个、第 5 个或第 6 个字符。
我要更改的字符在文件名中不一定是唯一的。
例如:
APADA00010.tif
5th character = A
6th character = 0
有没有办法指定我想将每 5 个字符更改为连字符,或删除每 6 个字符?
我确实找到了另一个用户的类似查询,但它是针对 insert 而不是 replace 的,因此它不起作用:
get-childitem -Path .\ |
Rename-Item -NewName {$_.BaseName.insert(5,"-") + $_.Extension}
我是 Powershell 的新手(上周才开始摆弄它)所以如果您解释一下您的解决方案如何工作以及代码的哪些部分意味着什么,我将不胜感激。
您可以像这样删除或替换特定的顺序字符:
$string = "APADA00010.tif"
$string.Remove("5", "1")
$string = "APADA00010.tif"
$string.Remove("4", "1").Insert(4, "-")
请注意索引从 0 而不是 1 开始计数。
我正在尝试重命名数百个 TIFF 文件以遵循新的命名约定。我现在遇到了一种情况,我想删除或更改文件名中的第 4 个、第 5 个或第 6 个字符。
我要更改的字符在文件名中不一定是唯一的。
例如:
APADA00010.tif
5th character = A
6th character = 0
有没有办法指定我想将每 5 个字符更改为连字符,或删除每 6 个字符?
我确实找到了另一个用户的类似查询,但它是针对 insert 而不是 replace 的,因此它不起作用:
get-childitem -Path .\ |
Rename-Item -NewName {$_.BaseName.insert(5,"-") + $_.Extension}
我是 Powershell 的新手(上周才开始摆弄它)所以如果您解释一下您的解决方案如何工作以及代码的哪些部分意味着什么,我将不胜感激。
您可以像这样删除或替换特定的顺序字符:
$string = "APADA00010.tif"
$string.Remove("5", "1")
$string = "APADA00010.tif"
$string.Remove("4", "1").Insert(4, "-")
请注意索引从 0 而不是 1 开始计数。