【发布时间】:2023-04-01 02:05:01
【问题描述】:
在编码方面我不是很了解,但我正在尝试使用 PowerShell 找到一种方法来从多个文件中删除前 X 个字符和最后 X 个字符。因此,只保留中间部分。
例如) INV~1105619~43458304~~1913216023~0444857,其中1913216023是发票号。之前和之后的所有内容都需要从文件名中删除。
我用过: 获取子项 *.pdf | rename-item -newname { string.substring(22) } 删除前 22 个字符,但无法创建代码来删除剩余的一半。所有文件的字符数相同,但发票号前后的数字不同(每个文件名不同)。
非常感谢任何帮助/建议!
【问题讨论】:
-
我想这就是你想要的:
if ("INV~1105619~43458304~~1913216023~0444857".substring(22) -match "^([^\~]*)") { $Matches.1 } -
发票号码是否总是相同的数字长度?
-
是的。这些发票的长度始终为 10 位数。我正在尝试重命名一堆具有相同结构的文件。 (22 个字符~~INVOICE#~~8 个字符)
-
("INV~1105619~43458304~~1913216023~0444857" -split "~")[-2]
标签: powershell file rename