2

DB に多数のファイル パスが格納されています。ファイルが実際に存在するかどうかを確認する必要があります。以前にこれを行ったことがありますが、スクリプトを紛失したため、助けが必要です。

すべてのパスをテキスト ファイルに入れ、それらをループして、それらが存在するかどうかを確認します。存在しない場合は、存在しないパスをログ ファイルに記録します。

このようなもの:

# ! 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
}

少し助けて?

4

3 に答える 3

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
   }
}
于 2013-02-12T16:46:10.320 に答える
2

inputfile が 1 行に 1 つのファイルパスである場合は、次を試してください。

$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
于 2013-02-12T16:57:46.170 に答える
0
$log = "e:\pshell\notExists.log" 

Get-Content "e:\pshell\files.txt" |
where {!(test-path $_)} |
add-content $log
于 2013-02-12T16:56:31.190 に答える