将输出文件写为.txt或.csv到包含多个条件的脚本

时间:2016-08-08 12:42:53

标签: powershell

我编写了一个脚本来检查服务状态,测试两个路径并测试注册表值。目前我在power shell控制台上获得输出(可能是因为我正在使用write-output命令)。 有没有办法将单页输出写入文件? 我正在努力寻找一种方法将整个输出文件输出到文件中。

以下是剧本。

$testpath = Test-Path "C:\test" 
$testpath2 = test-path "C:\test"  
$mcshieldk = Get-Service -Name mcshield | select Name  
$internet = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\internet explorer").MkEnabled $hostname = hostname  Write-Host "hostname of comuter is" $hostname if (Test-Path $Machinetype)
{}  
else { Write-Host "internet is" $internet }  
if ($testpath -eq $true -and $testpath2 -eq $true) 
 {  Write-Host "test and test1 folder exists" -ForegroundColor Green  }  
else{ Write-Host "folder does not exists" -ForegroundColor Red  }  if($mcshield.Name -eq "mcshield") { Write-Host "mcshield service exists" }  
else { Write-Host "mcshield does not exists"  }

以下是控制台输出

hostname of comuter is Server1
internet is Yes
test and test1 folder exists
mcshield  does not exists

1 个答案:

答案 0 :(得分:1)

将您的Write-Host cmdlet换出,或使用以下内容添加另一行:

"Your output text $YourVariable" | Out-File -FilePath "C:\Log.txt" -Append -Encoding utf8

这将在日志文件C:\Log.txt的末尾追加一个字符串。 注意,缺少-Append参数会导致文件被覆盖。

您也可以使用以下内容给出相同的效果:

"Your output text $YourVariable" >> "C:\Log.txt"

但请注意不要混合使用这两种方法,因为您可能会在文本文件中遇到编码错误。如果您希望使用第二种方法覆盖文件,请使用>而不是>>