我有一个数字列表,我需要根据列表中一组项目的第一个字符声明多个变量为true。
这绝不是一个实际的例子,但这是一个场景。这是一组项目:
A1 A2 A4 B3 B5
我需要脚本来查看此列表,如果任何第一个字符以A开头,那么$A = true
。和/或如果它发现任何以B开头,那么$B = true
。如果找不到任何以C开头,那么$C = false
。
我需要脚本检查每个字母,然后如果发现任何以该字母开头的值,则需要回报。
我知道这是一个令人困惑的帖子,所以如果有任何问题请回复。
答案 0 :(得分:0)
将变量初始化为$false
:
$A = $false
$B = $false
$C = $false
...
然后迭代列表并使用switch
语句将变量设置为$true
如果列表项以特定字符开头:
$list | ForEach-Object {
switch -wildcard ($_) {
'a*' { $A = $true }
'b*' { $B = $true }
'c*' { $C = $true }
...
}
}
或者,正如Bruce Payette在评论中指出的那样,只需将列表直接传递到switch
语句中:
switch -wildcard ($list) {
'a*' { $A = $true }
'b*' { $B = $true }
'c*' { $C = $true }
...
}
答案 1 :(得分:0)
Ansgar更快,所以采用不同的方法
Checking A
A:True
Checking B
B:True
Checking C
C:False
示例输出:
my_premium_shortcodes(); // Fires early in my php file
function my_premium_shortcodes(){
$status = get_option( 'key_status' );
if( $status !== false && $status == 'valid' ) {
add_shortcode('shortcode_handle_1','shortcode_function_1');
add_shortcode('shortcode_handle_2','shortcode_function_2');
} else {
remove_shortcode('shortcode_handle_1','shortcode_function_1');
remove_shortcode('shortcode_handle_2','shortcode_function_2');
}
}
答案 2 :(得分:0)
我会给你另一个选项,一个你不必手动输入26个案例。
ForEach($Char in (65..90|%{[char]$_})){
Set-Variable -Name $Char -Value ([bool]($List -match "^$char"))
"$Char found: " + (Get-Variable $Char).Value
}
这将迭代A-Z,并检查列表中的任何内容是否与第一个字母的内容匹配,并将结果计算为True / False。然后它将该结果分配给该字符的变量,并显示结果。