powershell - $Hostname.contains | 其中 {$_.name -Match ("test")})
问题描述
您好,我已经在 PowerShell 中完成了这个脚本
$hostname = get-content env:computername
$host = "Desk"
if ($hostname.contains | Where {$_.name -Match ("test")})
{
$chars = [char[]]"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
$name = [string](($chars[0..25]|Get-Random)+(($chars|Get-Random -Count
10) -join ""))
Rename-Computer -NewName $host$nam
Write-Host -foregroundcolor Yellow "New Computername is $host$name"
}
else {
Write-Host -foregroundcolor Red "This is not a test pc "
Start-Sleep -s 10
Exit
}
当我只寻找“测试”这个词时,这工作正常我想要做的是有更多的搜索条件,比如
if ($hostname.contains | Where {$_.name -Match ("test" -or "test01" -or
"test02" -or "test03" -or "test04" -or "test05")})
谢谢你。
解决方案
-Match
运算符是不区分大小写的正则表达式匹配。这意味着模式"test"
将匹配test01
, Zerotest
, test1323454
,Anythingtestanything
等。如果您对要测试的模式有更多了解,如果您想继续使用正则表达式,则可以定制您的正则表达式匹配。
例如,如果您知道所有主机名都将以test
数字开头和结尾,则可以使用-Match "^test\d+$"
. -CMatch
如果区分大小写很重要,您应该使用。
^
是字符串的开头。\d+
是一位或多位数字$
是字符串的结尾
请参阅关于比较运算符以查看有关 的更多信息-Match
,它包含有关正则表达式的链接。
推荐阅读
- html - 浮动:左高度设置为0px
- node.js - 在哪里可以找到用于将设备连接到 AWS IIoT Greengrass 的 Javasript 开发工具包?
- c - 如何将 uint8 * 转换为包含可变长度数组元素的结构?(C 编程)
- python - 从一个数据框中删除存在于另一个数据框中的行
- excel - 在 Sumproduct 中使用 Vlookup
- c# - 如何在视图状态中存储列表以便没有数据丢失以及当我尝试添加新列表时单击添加按钮
- ios - 自定尺寸表视图单元内的自定尺寸表视图
- sql - SQL 中有没有一种方法可以将所有具有相同 ID 的“开始”到“结束”进程所花费的时间相加?
- python - 如何根据一些输入数据选择张量中的元素?
- python - anaconda 安装 turicreate 失败