【发布时间】:2014-02-17 08:24:48
【问题描述】:
我无法让它工作。它不喜欢 "(" char;
我该如何解决?
Dir | Rename-Item -NewName { $_.name -replace "(","" }
如何在 PowerShell 中处理这种类型的特殊字符?
【问题讨论】:
-
我没有使用
powershell的经验,因为像这里的大多数其他用户一样,我在 Linux 上工作并使用像bash这样的标准 shell。但这在所有环境中都应该是相同的:您必须“转义”具有控制意义的特殊字符。所以寻找如何在powershell中转义字符,很可能是backslash:Dir | Rename-Item -NewName { $_.name -replace "\(","" }。但话又说回来:如果某事是典型的,MS 总是以另一种方式做事,所以它很可能是你需要使用的另一个角色。检查文档。 -
@arkascha 请调低不专业的反 MS 态度。它并没有真正帮助回答这个问题,因为 .Net 确实在正则表达式中使用 `` 作为转义字符。
-
@vonPryz 我看不出问题是什么:这不是“态度”或任何东西。我提示了这是如何通常完成的(阅读:在其他 shell 中),并添加了一个提示,即这在 MS 环境中可能略有不同(您已确认)。所以它确实有帮助,因为它指出了正确的路径。
-
@arkascha 它真的只是偶然的帮助。 Powershell 中的转义字符是反引号。在这种情况下,您需要一个反斜杠来转义正则表达式中的特殊字符,而不是因为 shell 语法需要任何转义。如果您查看我给出的答案,您会发现实际上可以在不转义
(的情况下进行替换。
标签: powershell