$ErrorActionPreference = 'Continue'
try
{
$fileEntries = [IO.Directory]::GetFiles("somedirectory", "*",[IO.SearchOption]::AllDirectories);
}
catch [Exception]
{
$_.Exception.Message
}
foreach($fileName in $fileEntries)
{
[Console]::WriteLine($fileName);
}
上記のコードは例外をスローします
パスの一部が見つかりませんでした'\blah \ dah \ dodah \ updity_and_suppy\03。Docs hokeypokey \ imp \ lalalid \ welpy qwerty-poloky Architecture-tada sausy(from Internet)todady poloky TPG upodsl poliduity \ B4PE to Y3-E xternal asdfds polm toluky to Saftgy 3 yuppy App \ OldDocs'。
パスを少しわかりにくくしましたが、レイアウトはそこにあります。
Get-ChildItemの代わりにGetFilesを使用しようとしている理由は、速度によるものです。ネットワーク上で数百テラバイトを超える可能性がありますが、.Netオブジェクトを取得するときにGet-ChildItemが遅すぎて、必要以上の情報が含まれています。
私が尋ねている質問は、「> -ErrorAction SilentlyContinueに似たものを使用して、このエラーを無視できますか?」です。または「このエラーの発生を停止する方法はありますか?」
ご検討をお願いいたします。