我需要完全限定当前不存在的所有主机名。
H284Infa.txt
包含一些完全限定的域名,一些不在// /.
h284infalist.ps1
保留所有主机名,其域名以=
符号分隔。
我需要将此列表拉入H284infa.txt
以完全限定所有不是的ID,并将输出写入output.txt
。并非所有下面的行都是正确的,但这是我目前所处的位置。在倒数第二行,我还需要命令在两个文档之间提取数据。
$data = Get-Content "H284Infa.txt"
$stream = [System.IO.StreamWriter] "output.txt"
foreach ($line in $data)
{
$var = (($var -split ("\\\\"))[1])
$var = (($var –split ("\\"))[0]).ToLower
if var "empty" If ($var -eq ".com")
{
if var If ($var -notlike ".com")
{
$data1 = Get-Content "h284infalist.ps1" | select-string $var
$hostname = (($line -split ("="))[0]).ToLower()
$fqdn = ($hostname + "." + ($line -split ("="))[1]).ToLower()
$c=$line1.ToLower() -replace $var, $fqdn
$stream.WriteLine($c)
}
else {
"pull line from file A to file B"
$stream.close()
答案 0 :(得分:0)
这样的事情应该做你想做的事情:
$host2fqdn = @{}
Get-Content 'C:\path\to\h284infalist.ps1' | % {
$hostname, $fqdn = $_ -split '\s*=\s*'
$host2fqdn[$hostname] = $fqdn
}
(Get-Content 'C:\path\to\H284Infa.txt') | % {
if ( $_ -match '\\\\(.+?)\\' -and $host2fqdn[$matches[1]] ) {
$_ -replace $matches[1], $host2fqdn[$matches[1]]
} else {
$_
}
} | Set-Content 'C:\path\to\H284Infa.txt'