2017-08-30 17 views
0

ここでは、PowerShellスクリプトを使って日々のフォーム処理から私たちのシステム上にある何千もの空のフォルダを削除しようとしているいくつかのスクリプトを扱っています。これを行うにはいくつかの簡単で効果的な方法がありますが、フォルダを確認して選択する方法が必要です。空であっても削除しないでください。GridViewの出力からフォルダを削除する

私は$folderのパラメータステートメントを使用していますので、コマンドラインで入力するか、プロンプトが表示されます。このコマンドを使って私はgridviewを取得し、出力を単にエコーしても問題ありません。しかし、出力をRemove-ItemまたはDel -Recurseに渡す方法はわかりません。 Delを使用してください:

del:ドライブが見つかりません。名前のドライブ「@ {フルネーム= D」が存在しません。」

それはどちらかがエコー対出力を得ていないか、それが配列を探しているということらしい?

+0

をあなたはオブジェクトを通してパイプする必要があります。 '| Remove-Item -WhatIf' edit:nvmです。ループの前に '$ Folders'を定義して、怪物に見えないようにしてください。 – TheIncorrigible1

+0

'del $ folder' - >' del $ folder.FullName' –

+0

@AnsgarWiechers - ループでコードを修正しました。 – UniCav

答えて

1

私は疑います。。?これはあなたが望むものを達成するあなたは既にパイプラインで作業している、ここでForEachループの必要はありませんあなたはそのスクリプトブロックをどうしようとしている何

Get-ChildItem -LiteralPath $Target -Directory -Recurse -Force | 
    Where-Object { !$_.GetFiles('*','AllDirectories') } | 
    Select-Object -Property 'FullName' | 
    Out-GridView -PassThru -Title 'Select folders for deletion and click OK' | 
    ForEach-Object { Remove-Item -LiteralPath $_.FullName -WhatIf } 
+0

これはループを使用するよりもはるかにクリーンです。ありがとう! – UniCav

関連する問題