使用Out-File将powershell附加到现有文件

时间:2018-03-25 13:13:32

标签: powershell powershell-remoting

所以我遇到了这个问题,我的结果是写出一个Out文件。 我遇到的问题是,如果新文件项确实存在,我得到的错误消息是路径为空。

请查看脚本并告诉我您的想法

谢谢

$sScriptVersion = "1.0"


$dir =  $PSScriptRoot 


$svrlist += $dir + '\' + 'serverlist.txt' 
$folder = 'search'
$computername = Get-Content $svrlist
$drv_array = @()
$new_drv_array =@()



$SearchStr = "error"


$log_pth = 'ProgramData\something\something\something\logs'



$file_logs = @()
$log_pth =  @()
$log_nme =  @()
$srchpath = @()




foreach($server in $computername)
{

    $disks = Get-WmiObject -ComputerName $server -Class Win32_LogicalDisk -Filter "DriveType = 3";
        foreach($disk in $disks)
        {
          $drv_array += $disk.DeviceID;
        }


    $driv =Foreach-Object {$drv_array -replace ":", "$"} 


    foreach($drv in $driv)
    { 

    $new_drv_array += '\\'+ $server + '\'+ $drv +'\'+ $log_pth


    }

}



Foreach($tst_pth in $new_drv_array )
{
   $dvr_testpath =   test-path $tst_pth


    $srchpath += $tst_pth + '\'+ "*.*"         


if ($dvr_testpath -eq $false)
{
 write-host "This path does not exist " $tst_pth 
}
else

{

           write-host "This path does  exist"  $tst_pth

           $Sel = Select-String  -pattern $SearchStr  -Context 2, 3 -path $srchpath

           $out_file =  New-item -ErrorAction ignore -itemtype File  (join-path $dir1 $log_nme)

这是我遇到问题的部分

$ tst = Test-Path $ out_file

           if($tst -eq $false) 
            {  
             write-host "writing out parsed log file"

             if($Sel -ne $null)
            {
              $Sel| Out-File  $out_file       
            }  
            }
            else
            {
            write-host " parsed log file does exist" 

            if($Sel -ne $null)
            {
            $Sel| Out-File -Append  $out_file        
            }  
           }
          }  
         }  

0 个答案:

没有答案