-Regex switch 语句支持正则表达式匹配,就像支持通配符一样。 PowerShell switch-Regex($message) {'^Error'{Write-Error-Message$Message}'^Warning'{Write-Warning-Message$Message} default {Write-Information$message} } 在我撰写的另一篇文章中有更多使用正则表达式的示例:使用正则表达式的多种方式。
$_自动变量包含传递给switch语句的表达式的值,可在<result-to-be-matched>语句范围内进行计算和使用。 完整的switch语句语法如下所示: Syntax switch [-Regex | -Wildcard | -Exact] [-CaseSensitive] (<test-expression>) { string | number | variable | { <value-scriptblock> } { <action-scriptblock>...
{ "Tianjin" } Else { "Chongqing" } # 使用 Switch switch($value) { 1 {"Beijing"} 2 {"Shanghai"} 3 {"Tianjin"} 4 {"Chongqing"} }1 测试取值范围使用Switch 时缺省的比较运算符为 -eq 等于,你也可以自己定制比较条件,将条件放在花括号中,必须保证条件表达式的返回值为布尔类型”$True”或”$...
当然你觉得麻烦还可以开启正则表达式参数 1$n=Get-Random 1002$s='小明考试得分'3switch-Regex($n)4{5'[0-6][0-9]|^0$' {$m='不及格'}6default{$m='及格'}7}8$s+$n+' 评级:'+$m 开启通配符模式 1$s='www.baidu.com'2switch-Wildcard($s)3{4'www*' {'匹配'}5default{'不匹配'}6...
Switch -Regex ($input) { "正则表达式1" { Write-Host "匹配正则表达式1" } "正则表达式2" { Write-Host "匹配正则表达式2" } Default { Write-Host "未匹配任何正则表达式" } } #ForEach-Object 命令:用于迭代集合中的每个对象并对其执行操作,可以通过 -match 参数进行正则表达式匹配。
switch可以在表達式上,而不是變數。 PowerShell switch( (Get-Service| Where status-eq'running').name ) {...} 無論表達式評估為 什麼,都是用於比對的值。 多個相符專案 您可能已經對此有所取用,但 可以switch符合多個條件。 使用-wildcard或-regex比對時尤其如此。 您可以多次新增相同的條件,並全部觸發。
powershell switch和正则表达式,$strPattern="软件版本"$text=netconfigworkstationswitch-Regex($text){ $strPattern{Write-Host$switch.current}}
除了匹配值之外,Switch 构造还可用于匹配模式。 可以使用 -wildcard 参数,以与 -like 运算符相同的语法来执行模式匹配。 或者,可以使用 -regex 参数通过正则表达式执行匹配。 请务必注意,使用模式匹配时,可以进行多次匹配。 当有多个匹配项时,将运行所有匹配模式的脚本块。 这与仅运行一个...
functionParse-IniFile{param([string]$Path)$ini= @{}switch-regex-file$Path{"^\[(.+)\]$"{$section=$matches[1]$ini[$section]= @{}}"(.+?)=(.+)"{$name,$value=$matches[1..2]$ini[$section][$name]=$value}}return$ini}
$Matches 变量也适用于具有 switch 参数的 -Regex 语句。 其填充方式与 -match 和-notmatch 运算符相同。 有关 switch 语句的详细信息,请参阅 about_Switch。 备注 在会话中填充 $Matches 时,它将保留匹配的值,直到被另一个匹配项覆盖。 如果再次使用 -match 且未找到匹配项,则不会将 $Matches 重置为 $nul...