0

Get-ChildItem で奇妙な問題が発生しています。C: ドライブで Office ファイルを検索しようとしていますが、その中のいくつかのフォルダーを除外しています。私はこれのために非常に多くの方法を試しました。最初に Copy-item で直接除外しようとしましたが、うまくいきませんでした。次に、Get-ChildItem を試しましたが、アクセスが拒否されたという特定のフォルダーで停止します。

このリンクでこの方法を試しました。フォルダーを1つだけ実行すると、想定どおりにスキップされます。ただし、そのフォルダーが除外リストにある場合でも、他のフォルダーが検索されます。

だからここに私のコードがあります。

$source = "C:\"
$destination = "C:\Backup"
$Exclude =  @('*C:\PerfLogs*' , "Backup" , "boot" , "MSOCache" , "programdata" , "Recovery" ,        "TrueDelete" , "Users", "Windows", "Documents and Settings", "Program Files (x86)\Google\" , "System   Volume Information" , "`$Recycle.Bin" , "Config.Msi" , "bmm")
$includes ="*.xls " , "*.xlsx" , "*.doc" , "*.docx" , "*.ppt" , "*.pptx"
$items = Get-ChildItem $source -Recurse -Exclude $exclude -Include $includes | ?{ $_.fullname -notmatch "\\perflogs\\?" -or "\\backup\\?" } | Copy-Item -Destination $Destination -Container -Force

最初はフォルダツリーですべてをコピーしたかったのですが、それもうまくいきません。このコードを実行した後、最初に「Perflogs」で停止し、続行すると、除外リストにある他のフォルダーを検索してアクセスが拒否されます。

Get-ChildItem : パス 'C:\PerfLogs\' へのアクセスが拒否されました。C:\pstools\backup\2.ps1:6 で char:10 + $items = Get-ChildItem $source -Recurse -Exclude $exclude -Include $includes | ? ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~

乾杯!

4

1 に答える 1