powershell - 为什么字符串显示长度为 1?
问题描述
在下面的代码中,我正在从 Excel 中读取值,将其与另一个字符串匹配并希望读取变量的长度。但是它总是显示值1 ...有人可以解释我为什么吗?
BR
$FilePath = "randompath"
$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($FilePath)
$Worksheet = $Workbook.Sheets.Item(1)
$zahl1 = $worksheet.Cells.Item(1, 1).Value2
$docpath | out-string
[string]$Test = $docpath
$Cut = 13
If($Test -match("LBIW")){
$postiitonLBIW=$Test.IndexOf("LBIW")
$result1=$Test.Substring($postiitonLBIW)
$result1=$Test.Split("\")
$zahl1 = $result1 -match "LBIW"
$zahl1 = $zahl1.length
write-host $zahl1
解决方案
问题$zahl1
设置为$true
or $false
,长度为 1。
$zahl1 = $result1 -match "LBIW"
$zahl1 = $zahl1.length
如果你想要匹配,你必须使用$matches[n]
. 您分配的方式$zahl1
是输出是否找到匹配项。
更好的方法:
$zahl1Len = 0 #default var incase no matches
if ($result1 -match "LBIW") { # if it has a match, process
$zahl1 = $matches[1] # or whatever match index
$zahl1Len = $zahl1.length
}
这样,它被分配第一个匹配项并计算长度(如果匹配)。
推荐阅读
- python - 如何使用python和beautifulsoup访问同一类的第二个和第三个p的内容
- flutter - 连接服务协议出错:无法连接到http://127.0.0.1:60180/d9zPljWey-4=/
- c++ - 运行时的 C++ 字符串文字转换
- sql - 将多行合并为 1 行(但两次)
- ubuntu - 如何在 Raspberry Pi 上退出 Busy Box?
- c++ - .vcxproj 文件的导入声明导致 Visual Studio 2019 中的错误
- excel - 如何一次检查多个单元格VBA
- swiftui - NavigationLink 目的地上的 SwiftUI NavigationTitle
- javascript - 更改段落中与搜索词匹配的单词的颜色
- rust - 如何将元组中的 vec 值映射到元组中的 refs vec?