Raj*_*eev 3 windows powershell escaping
我试图在文件的每一行中找到管道(|)字符的数量.我正在使用以下命令来执行此操作.
gc .\test.txt | % { ($_ | select-string "|" -all).matches | measure | select count }
Run Code Online (Sandbox Code Playgroud)
它不计算管道符号.
我也试过了
谁能告诉我如何逃避电源外壳中的管道特征?
如果我使用除管道之外的字符串或字符,则命令正常工作.
反斜杠\是正则表达式的转义字符.
gc .\test.txt | % { ($_ | select-string "\|" -all).matches | measure | select count }
Run Code Online (Sandbox Code Playgroud)
如果您不确定,可以随时使用[RegEx]::Escape():
$pattern = [RegEx]::Escape("|")
gc .\test.txt | % { ($_ | select-string $pattern -all).matches | measure | select count }
Run Code Online (Sandbox Code Playgroud)
否则,管道不必在字符串内的PowerShell中进行转义.