PowerShellで特定のファイルがないフォルダーを検索する

PowerShellで特定のファイルがないフォルダーを検索する

サブフォルダーとサブサブフォルダーがあります。サブサブフォルダー内で、PKA.dump という名前のファイルがないすべてのサブフォルダーを検索します。これは PowerShell で実行できますか?

サブフォルダはAngle1、Angle2などからAngle24まであります。

サブサブフォルダは 1eV、2eV、150eV まであります。

特定のサイズより小さい場合は次のように確認できます。

Get-Childitem -path .  -filter "PKA.dump" -recurse | where {$_.Length -le 500}

しかし、それらが存在しない場合はどうなるでしょうか?

答え1

私の理解が正しければ、次のようなものが機能するはずです:

gci -Filter *eV -Directory -Recurse | 
    ? { -not (Test-Path "$($_.FullName)\PKA.dump") } | 
    select FullName

これにより、PKA.dump ファイルを含まない *eV という名前のすべてのフォルダーへの完全なパスが表示されます。これが必要ない場合でも、少なくともいくつかのアイデアが得られる可能性があります。

(今後の参考のために、このような種類の質問では、入力例と予想される出力を示す必要があります。)

答え2

フォルダーがある場所にパスを追加すると、機能するはずです。

$path = " "; # ADD YOUR PATH TO FOLDER HERE
$all_loc = Get-ChildItem -Recurse $path -Include "ev*" #Only looks where ev* exists

foreach ($x in $all_loc){ # look through all  "ev*" subsubfolders 
    $z = (Join-Path $x.FullName "PKA.dump") # variable to hold file name to search
    $test = Test-Path "$z" -PathType leaf;
    if ($test -eq 0){
        echo "$x does not contain PKA.dump";
        ## Uncomment below to create empty PKA.dump file
        #New-Item $z -type file
    }
}

## uncomment below to pause before closing
#$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

関連情報