将十六进制字符直接添加到 PowerShell 中的字符串
Add Hex Chars directly to a string in PowerShell
我想做这样的事情(我尝试了四种不同的方法)。创建一个包含十六进制字符的字符串值:
$searchString = "filterValue\xEF\xBF\xBD"
#$searchString = "filterValue" + 0xEF -as [char] + 0xBF -as [char] + 0xBD -as [char]
#$searchString = "filterValue" + 0xEF + 0xBF + 0xBD
$searchString = "filterValue[=10=]xEF[=10=]xBF[=10=]xBD"
Write-Host "$searchString len=$($searchString.Length)"
长度应为 14。
是否有人将它们内联添加而不是创建三个单独的 char 值,如此 post 所示:Writing a hex escaped char in Powershell
我尝试了更长的方法:
$char1 = (0xEF -as [char])
$char2 = (0xBF -as [char])
$char3 = (0xBD -as [char])
$searchString = "filterValue" + $char1 + $char2 + $char3
Write-Host "$searchString len=$($searchString.Length)"
$posSearchString = $filterBytes.IndexOf("$searchString")
但这似乎与我要找的不符:
使用子表达式:
$searchString = "filterValue$([char]0xEF)$([char]0xBF)$([char]0xBD)"
字符串连接或使用格式运算符也可以,只要您转换值:
$searchString = "filterValue" + [char]0xEF + [char]0xBF + [char]0xBD
$searchString = "filterValue{0}{1}{2}" -f [char]0xEF, [char]0xBF, [char]0xBD
如果您想使用 -as
运算符而不是将数字转换为字符,您需要对表达式进行分组:
$searchString = "filterValue" + (0xEF -as [char]) + (0xBF -as [char]) + (0xBD -as [char])
$searchString = "filterValue{0}{1}{2}" -f (0xEF -as [char]), (0xBF -as [char]), (0xBD -as [char])
我想做这样的事情(我尝试了四种不同的方法)。创建一个包含十六进制字符的字符串值:
$searchString = "filterValue\xEF\xBF\xBD"
#$searchString = "filterValue" + 0xEF -as [char] + 0xBF -as [char] + 0xBD -as [char]
#$searchString = "filterValue" + 0xEF + 0xBF + 0xBD
$searchString = "filterValue[=10=]xEF[=10=]xBF[=10=]xBD"
Write-Host "$searchString len=$($searchString.Length)"
长度应为 14。
是否有人将它们内联添加而不是创建三个单独的 char 值,如此 post 所示:Writing a hex escaped char in Powershell
我尝试了更长的方法:
$char1 = (0xEF -as [char])
$char2 = (0xBF -as [char])
$char3 = (0xBD -as [char])
$searchString = "filterValue" + $char1 + $char2 + $char3
Write-Host "$searchString len=$($searchString.Length)"
$posSearchString = $filterBytes.IndexOf("$searchString")
但这似乎与我要找的不符:
使用子表达式:
$searchString = "filterValue$([char]0xEF)$([char]0xBF)$([char]0xBD)"
字符串连接或使用格式运算符也可以,只要您转换值:
$searchString = "filterValue" + [char]0xEF + [char]0xBF + [char]0xBD
$searchString = "filterValue{0}{1}{2}" -f [char]0xEF, [char]0xBF, [char]0xBD
如果您想使用 -as
运算符而不是将数字转换为字符,您需要对表达式进行分组:
$searchString = "filterValue" + (0xEF -as [char]) + (0xBF -as [char]) + (0xBD -as [char])
$searchString = "filterValue{0}{1}{2}" -f (0xEF -as [char]), (0xBF -as [char]), (0xBD -as [char])