powershell如果文件不存在日志字符串到文件

时间:2013-02-12 16:41:49

标签: powershell file-exists logfile

我有很多文件路径存储在数据库中。我需要检查文件是否确实存在。我以前做过这个,但是丢失了脚本并需要一些帮助。

我将所有路径放在一个文本文件中,并想循环遍历它们,并检查它们是否存在。如果它们不存在,我想将不存在的路径放在日志文件中。

这样的事情:

# ! equals -not

$log = "e:\pshell\notExists.log"
$log | out-file $log

$list = Get-Content "e:\pshell\files.txt"

Foreach ($file in $list)
{
  CHECK IF FILE EXISTS
  IF IT DOESNT then Write-Output $file
}

一点帮助?

3 个答案:

答案 0 :(得分:4)

测试路径?

$log = "e:\pshell\notExists.log" $log | out-file $log

$list = Get-Content "e:\pshell\files.txt"

Foreach ($file in $list) 
{ 
   If (!(test-path $file))
   {
      Write-Output $file
   }
}

答案 1 :(得分:2)

如果inputfile是每行一个文件路径,请尝试:

$log = "e:\pshell\notExists.log"

Get-Content "e:\pshell\files.txt" | Where-Object {
    #Keep only paths that does not exists
    !(Test-Path $_)
} | Set-Content $log

答案 2 :(得分:0)

$log = "e:\pshell\notExists.log" 

Get-Content "e:\pshell\files.txt" |
where {!(test-path $_)} |
add-content $log