PowerShell [ ] 转义
这波是玄学,没有找到相关文档,都是自己试出来的。。。
文件路径
首先,我们新建一个文件:
> New-Item '['
非常成功并没有报错,然后我们用 ls
查看一下文件:
> ls '['
Get-ChildItem : 无法检索 cmdlet 的动态参数。指定的通配符模式无效: [
所在位置 行:1 字符: 1
+ ls '['
+ ~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem],ParameterBindingException
+ FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.PowerShell.Commands.GetChildItemCommand
天哪,这是什么?试试按 TAB
键补全:
> ls '.\`['
ls : 找不到路径“C:\Users\MoeShin\test\`[”,因为该路径不存在。
所在位置 行:1 字符: 1
+ ls '.\`['
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\MoeShin\test\`[:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
这啊,又是什么?
后来,我试啊试啊,发现前面加两个反引号才行:
> ls '``['
目录: C:\WDNMD
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1202/23/66 66:66 0 [
所以,我们 ForEach-Object 遍历文件夹的时候就要处理一下,比如这样替换:
ls | ForEach-Object {
ls ($_.name -replace '(\[|\])', '``$1')
}
Remove-ItemProperty
这是我在搞注册表时发现的问题,-Name
只需要一个反引号就行
Telegram 是创建和运营虚拟社区的最佳工具之一。企业可以通过群组和渠道直接接触受众,从而鼓励有意义的参与和忠诚度。
你的文章内容非常用心,让人感动。http://www.tjkjwz.com
你的文章内容非常精彩,让人回味无穷。http://www.zhenwuxiufushi.com
你的文章让我学到了很多技能,非常实用。 https://www.yonboz.com/video/88644.html
你的文章让我学到了很多技能,非常实用。 https://www.yonboz.com/video/88644.html