需要帮助生成一个从文本文件中查找字符串的powershell脚本 - 然后复制其旁边的字符串 。计划使用它从通用表单中提取数据。
例如,这是文字墙上的一行:
姓名:Jill Valentine
希望使用'Name'字符串来提取'Jill Valentine'字符串,然后将其存储在变量中。像检查一样:
$name = $_.contains("Name:")
我将使用Get-content从文本文件中读取。有什么想法吗?
答案 0 :(得分:2)
您可以使用正则表达式,例如,如果您想要Name :
(get-content c:\temp\your_file_with_names.txt) | % {
if ($_ -match "name : (.*)") {
$name = $matches[1]
echo $name
}
}
答案 1 :(得分:1)
通用解决方案看起来像那样
function Get-FormDataById ($path, $id){
$dataRegex = "^$id(.+)$"
Get-Content $path | % {
if ($_ -match $dataRegex ) {
$matches[1]
}
}
}
用法
Get-FormDataById -path "C:\test.txt" -id "name: " //returns 'John Smith'
Get-FormDataById -path "C:\test.txt" -id "age: " //returns 28
C:\test.txt
name: John Smith
age: 28
<强>更新强>
保存所有匹配的代码:
function Get-FormDataById ($path, $id){
$dataRegex = "^$id(.+)$"
$allMatches = @()
Get-Content $path | % {
if ($_ -match $dataRegex ) {
$allMatches += $matches[1]
}
}
$allMatches
}
让我们现在将C:\test.txt
的内容更改为
name: John Smith
name: Jane Smith
age: 28
用法
$allMatches = Get-FormDataById -path "C:\test.txt" -id "name: "
$allMatches[0] //returns 'John Smith'
$allMatches[1] //returns 'Jane Smith'