回答:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
、他のエラーも非表示になります。
Remove-Item './folder/*'
。すべてのフォルダーのファイルのみを本当に消去したい場合は、すべての葉を一覧表示し、それをRemove-ItemコマンドレットにパイプすることができますGet-ChildItem -Recurse -File | Remove-Item
PowerShellからのforce forceの回答:Remove-Itemのヘルプ:
このコマンドレットのRecurseパラメーターは正しく機能しません
回避策は次のとおりです。
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
そして、フォルダ自体を削除します
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
している最近のスクリプトでは、それは機能します。
Get-Help Remove-Item
Update-Help
2018年アップデート
PowerShellの現在のバージョン(Windows 10 1809のv5.1でテスト済み)では、より単純なUnix構文rm -R .\DirName
を使用して、.\DirName
含まれている可能性のあるすべてのサブディレクトリとファイルを含むディレクトリを静かに削除できます。実際、多くの一般的なUnixコマンドは、PowerShellでもLinuxコマンドラインと同じように機能します。
rm -R .\DirName\*
して、フォルダー自体を削除せずにフォルダーをクリーンアップすることもできます
フォルダなしでコンテンツを削除するには、以下を使用できます。
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
PowerShell ISEでは機能しませんでしたが、通常のPowerShell CLIで機能しました。
これがお役に立てば幸いです。それは私にバナナを運転していた。
PowerShell CLI
開発中ではなく、からの呼び出し時に削除されましたPowerShell ISE
。
以下は、Michael Freidgeimの回答のコピー&ペースト可能な実装です
function Delete-FolderAndContents {
# http://stackoverflow.com/a/9012108
param(
[Parameter(Mandatory=$true, Position=1)] [string] $folder_path
)
process {
$child_items = ([array] (Get-ChildItem -Path $folder_path -Recurse -Force))
if ($child_items) {
$null = $child_items | Remove-Item -Force -Recurse
}
$null = Remove-Item $folder_path -Force
}
}
私のディレクトリはC:\ usersにあったため、管理者としてPowerShellを実行する必要がありました。
del ./[your Folder name] -Force -Recurse
このコマンドは私にとってはうまくいきました。
del
はのエイリアスですRemove-Item
。
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*temp*"}
foreach ($Folder in $Folders)
{
$Item = $Folder.FullName
Write-Output $Item
Remove-Item $Item -Force -Recurse
}
オブジェクトとしてフォルダがある場合、次のコマンドを使用して同じスクリプトで作成したとしましょう。
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
次に、同じスクリプトでこのように削除できます
$folder.Delete($true)
$ true-再帰的な削除の状態
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*grav*"} # Your keyword name directories
foreach ($Folder in $Folders)
{
$Item = $Folder.FullName
Write-Output $Item
Remove-Item $Item -Force -Recurse -ErrorAction SilentlyContinue
}