Odpowiedzi:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore, chociaż spowoduje to również ukrywanie innych błędów.
Remove-Item './folder/*'. Jeśli naprawdę chcesz wyczyścić tylko pliki ze wszystkich folderów, możesz wyświetlić listę wszystkich liści i przesłać je do polecenia cmdlet Remove-ItemGet-ChildItem -Recurse -File | Remove-Item
Z PowerShell usuń siłę odpowiedzi : help Remove-Item mówi:
Parametr Recurse w tym poleceniu cmdlet nie działa poprawnie
Poleceniem obejścia jest
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
A następnie usuń sam folder
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $diri to działa.
Get-Help Remove-Itemdokumentacji systemu Windows 10 uzyskanej po Update-Helpuruchomieniu ...
To działało dla mnie:
Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue
W ten sposób folder jest usuwany ze wszystkimi plikami i nie powoduje błędu, jeśli ścieżka folderu nie istnieje.
Aktualizacja 2018
W bieżącej wersji programu PowerShell (przetestowanej w wersji 5.1 w systemie Windows 10 1809) można użyć prostszej składni Unix, rm -R .\DirNameaby dyskretnie usunąć katalog .\DirNameze wszystkimi podkatalogami i plikami, które może zawierać. W rzeczywistości wiele popularnych komend uniksowych działa w PowerShell w taki sam sposób, jak w linii poleceń Linuksa.
rm -R .\DirName\*do wyczyszczenia folderu bez usuwania samego folderu
Aby usunąć zawartość bez folderu, możesz użyć:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Deletenie działało w programie PowerShell ISE , ale działało przez zwykły interfejs CLI programu PowerShell.
Mam nadzieję, że to pomoże. Prowadził mnie bannany.
PowerShell CLIpodczas programowania PowerShell ISE.
Poniżej znajduje się implementacja odpowiedzi Michaela Freidgeima, którą można skopiować i wkleić
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
}
}
Ponieważ mój katalog znajdował się w C: \ users, musiałem uruchomić PowerShell jako administrator,
del ./[your Folder name] -Force -Recurse
to polecenie działało dla mnie.
deljest pseudonimem dla 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
}
Jeśli masz folder jako obiekt, powiedzmy, że utworzyłeś go w tym samym skrypcie, używając następnego polecenia:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Następnie możesz po prostu usunąć go w ten sam sposób
$folder.Delete($true)
$ true - stany usuwania rekurencyjnego
$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
}