読み取り専用ファイル以外のフォルダからすべてのファイルとサブフォルダを削除します。読み取り専用ファイル以外のフォルダ内のすべてのファイルを削除するにはどうすればよいですか?
どのようにpowershellを使用してそれを行うには?
読み取り専用ファイル以外のフォルダからすべてのファイルとサブフォルダを削除します。読み取り専用ファイル以外のフォルダ内のすべてのファイルを削除するにはどうすればよいですか?
どのようにpowershellを使用してそれを行うには?
読み取り専用ファイルであることができるオブジェクトのみ。 Get-ChildItem
コマンドレットを使用すると、System.IO.FileInfo
およびSystem.IO.DirectoryInfo
のオブジェクトが戻ってきます。 FileInfosのプロパティはIsReadOnly
です。
dir -recurse -path C:\Somewhere | ? {-not $_.IsReadOnly -and -not $_.PsIsContainer} | Remove-Item -Force -WhatIf
PsIsContainer
プロパティはPowerShellのによって作成された(詩のプレフィックスがそれを離れて与え)と項目がファイルまたはフォルダであるかどうかを判断している。だから、この1つのライナーを行うことができます。これを使用してファイルのみをRemove-Item
に渡すことができます。
実際に削除する準備ができたら-WhatIf
を削除してください。参考
各フォルダとファイルの属性を確認してから、条件ベースの削除を実行します。これは単なる擬似コードです。
だから、If (-not (a readonly file)) {
delete file
}
、指定したファイルまたはフォルダが読み取り専用であるかどうかを確認するには:
$item = Get-Item C:\Scripts\Test.txt
$item.IsReadOnly
HTH
、これはV3のビット容易である:
Get-ChildItem -Attributes !r | Remove-Item -Recurse -Force -WhatIf
または短い(別名)バージョン:
dir -at !r | ri -r -f -wh