Powershell 从每一行读取一些字符串
Powershell to read some strings from each line
我有这样的要求:
有一个包含以下模式的文本文件
172.26.xxy.zxy:Administrator:Password
172.26.xxy.yyx:Administrator:Password
172.26.xxy.yyy:Administrator:Password
172.26.xxy.yxy:Administrator:Password
我需要我的 powershell 脚本来读取每个单词并在需要时使用该单词。例如,
foreach(something)
{
I want the IP's(172.26.---.---) to read and store the value as a variable.
I want to store the two words after **:** in seperate variables.
}
如何做到这一点?我知道要读取整个文件或获取一些特定的字符串。但我需要对每个 line.Any 帮助完成相同的操作,我们将不胜感激。
是这样的吗?您可以在 :
上拆分,然后根据索引
存储您的变量
$contents = Get-Content C:\your\file.txt
foreach($line in $contents) {
$s = $line -split ':'
$ip = $s[0]
$user = $s[1]
$pass = $s[2]
write-host $ip $user $pass
}
小修改:"t" 内容缺失。
你可以写一个正则表达式来替换掉你不需要的部分
$ip_address= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
$user= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
$pwd= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
我认为更通用和纯粹的 Powershell 方式应该是这样的:
Select-String "(.*):(.*):(.*)" c:\file.txt |
Select @{Name="IP"; Expression = {$_.Matches.Groups[1]}},
@{Name="User"; Expression = {$_.Matches.Groups[2]}},
@{Name="Password"; Expression = {$_.Matches.Groups[3]}}
输出将是一组对象,每个对象具有三个属性 IP、用户和密码。因此,您现在可以将它们用于您的目的,或者只是在管道的末尾添加更多命令。
我有这样的要求:
有一个包含以下模式的文本文件
172.26.xxy.zxy:Administrator:Password
172.26.xxy.yyx:Administrator:Password
172.26.xxy.yyy:Administrator:Password
172.26.xxy.yxy:Administrator:Password
我需要我的 powershell 脚本来读取每个单词并在需要时使用该单词。例如,
foreach(something)
{
I want the IP's(172.26.---.---) to read and store the value as a variable.
I want to store the two words after **:** in seperate variables.
}
如何做到这一点?我知道要读取整个文件或获取一些特定的字符串。但我需要对每个 line.Any 帮助完成相同的操作,我们将不胜感激。
是这样的吗?您可以在 :
上拆分,然后根据索引
$contents = Get-Content C:\your\file.txt
foreach($line in $contents) {
$s = $line -split ':'
$ip = $s[0]
$user = $s[1]
$pass = $s[2]
write-host $ip $user $pass
}
小修改:"t" 内容缺失。
你可以写一个正则表达式来替换掉你不需要的部分
$ip_address= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
$user= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
$pwd= '172.26.xxy.zxy:Administrator:Password' -replace '^(.+):(.+):(.+)$',''
我认为更通用和纯粹的 Powershell 方式应该是这样的:
Select-String "(.*):(.*):(.*)" c:\file.txt |
Select @{Name="IP"; Expression = {$_.Matches.Groups[1]}},
@{Name="User"; Expression = {$_.Matches.Groups[2]}},
@{Name="Password"; Expression = {$_.Matches.Groups[3]}}
输出将是一组对象,每个对象具有三个属性 IP、用户和密码。因此,您现在可以将它们用于您的目的,或者只是在管道的末尾添加更多命令。