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 $dir
i to działa.
Get-Help Remove-Item
dokumentacji systemu Windows 10 uzyskanej po Update-Help
uruchomieniu ...
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 .\DirName
aby dyskretnie usunąć katalog .\DirName
ze 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 $directory2Delete
nie 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 CLI
podczas 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.
del
jest 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
}