が空でないディレクトリを削除するのPowerShellのRemove-Item
を使用する場合は、確認のために要求されます:Remove-Itemが確認を求めるプロンプトを表示すると、自動的に「いいえ」が選択されます。
PS C:\Users\<redacted>\Desktop\Temp> Remove-Item .\Test
Confirm
The item at C:\Users\<redacted>\Desktop\Temp\Test has children and the Recurse parameter was not specified. If you
continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
私は非対話型モードでPowerShellを実行する場合、私の代わりにエラーが表示されます。
Remove-Item : Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.
At line:1 char:1
+ Remove-Item .\Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Remove-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RemoveItemCommand
私は-Recurse
を使ってRemove-Item
に "Yes"オプションを選択したかのように処理することができます。まるで私が「いいえ」オプションを選択したかのように進んでいくことができますか?
(ジャスト明確にするため:-Force
と-Confirm:$false
は私がここに欲しいものではありません。)あなたは、あなたがそれを削除しようとする前に、ディレクトリが空であるかどうかを判断するために、テスト・パスを使用することができます
非対話モードに関するエラーメッセージが表示されないようにするため、2番目のオプションを選択します。それについて考えると、Remove-Itemによってスローされた例外をキャッチすることは、とにかく行く方法でしょう。 (例外的なメッセージが非インタラクティブモードではなく、削除不能なフォルダについては不平を言っているのは奇妙なことです)。 –