在PowerShell中从文件名中删除字符

4

我刚开始接触PowerShell,想知道是否有一种方法可以从文件名中删除一个字符。我要删除的字符是“-”,有时文件名中会有2或3个“-”。能否将带有“-”的文件重命名?

2个回答

8
Get-Item .\some-file-with-hyphens.txt | ForEach-Object {
  Rename-Item $_ ($_.Name -replace "-", "")
}

这个问题可能更适合超级用户论坛。

我可以在 Get-Item 中使用通配符吗?例如:'Get-Item .*.tif'。 - Noesis
1
是的,您可以在 Get-Item 中使用通配符。并且您可以通过将代码放置在反引号之间来格式化代码:`code`。 - Ansgar Wiechers
谢谢,它起作用了!!我正在尝试使用反引号'这是代码'来格式化注释 - 似乎不起作用,我感觉像个新手。 - Noesis
这些是单引号,不是反引号。不确定您使用的键盘布局,但在美国键盘上,反引号位于<1>的左侧。 - Ansgar Wiechers

6

要在文件名中删除或替换字符,请使用单引号 ',对于“特殊”字符,请使用反斜杠 \ 进行转义,以便正则表达式解析器字面理解。

以下代码从当前目录中所有文件名中删除 $(美元符号):

Get-Item * | ForEach-Object { rename-item $_ ($_.Name -replace '\$', '') }

以下内容与上述内容相同,使用每个命令的较短别名:
gi * | % { rni $_ ($_.Name -replace '\$', '') }

以下是从当前目录中所有文件名中删除标准字符"Z"的操作:
gi * | % { rni $_ ($_.Name -replace 'Z', '') }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接