生成完全限定的主机名

时间:2014-06-23 17:19:00

标签: powershell powershell-v1.0

我需要完全限定当前不存在的所有主机名。

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()

1 个答案:

答案 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'