8

フォルダーから特定のファイルを消去し、残りを事前定義されたサブフォルダーに移動するpowershellスクリプトに取り組んでいます。

私の構造は次のようになります

Main
    (Contains a bunch of pdb and dll files)
    -- _publish
        --Website
            (Contains a web.config, two other .config files and a global.asax file)
            -- bin
                (Contains a pdb and dll file)
            -- JS
            -- Pages
            -- Resources

移動を開始する前に、ファイル構造全体からすべての pdb、config、および asax ファイルを削除したいと考えています。私が使用するもの:

$pdbfiles = Get-ChildItem "$executingScriptDirectory\*.pdb" -recurse

foreach ($file in $pdbfiles) {
    Remove-Item $file
}

など、すべてのファイルタイプを削除する必要があります。Web サイトの bin フォルダーにある pdb ファイルを除いて、うまく機能します。そして、web サイト フォルダー内の ASAX ファイルの場合。何らかの理由で、Get-ChildItem 再帰検索によって無視されます。

これは、再帰構造内のアイテムの深さが原因ですか? それとも別のものですか?指定どおりにすべてのファイルを削除するように修正するにはどうすればよいですか。

編集: -force を追加しようとしましたが、何も変わりませんでした

回答:以下が機能しました:

$include = @("*.asax","*.pdb","*.config")
$removefiles = Get-ChildItem "$executingScriptDirectory\*" -recurse -force -include $include 

foreach ($file in $removefiles) {
    if ($file.Name -ne "Web.config") {
        Remove-Item $file
    }
}
4

2 に答える 2

19
Get-ChildItem -path <yourpath> -recurse -Include *.pdb
于 2012-05-29T11:55:48.163 に答える
2

パイプを使用して削除することもできます。

Get-ChildItem -path <yourpath> -recurse -Include *.pdb | rm
于 2015-10-01T14:36:26.070 に答える