जवाबों:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, तो वह अन्य त्रुटियों को भी छिपाएगा।
Remove-Item './folder/*'
:। यदि आप वास्तव में सभी फ़ोल्डरों की केवल फ़ाइलों को खाली करना चाहते हैं, तो आप सभी लीफ़्स को सूचीबद्ध कर सकते हैं और इसे निकालें-आइटम cmdlet पर पाइप कर सकते हैंGet-ChildItem -Recurse -File | Remove-Item
से PowerShell निकालें बल जवाब : मदद निकालें-मद का कहना है:
इस cmdlet में 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 के वर्तमान संस्करण में (विंडोज 10 1809 पर v5.1 के साथ परीक्षण किया गया है) सभी उपनिर्देशिकाओं और फाइलों rm -R .\DirName
में मौजूद निर्देशिका को चुपचाप हटाने के लिए सरल यूनिक्स सिंटैक्स का उपयोग कर .\DirName
सकते हैं। वास्तव में कई सामान्य यूनिक्स कमांड एक ही तरह से PowerShell में लिनक्स कमांड लाइन की तरह काम करते हैं।
rm -R .\DirName\*
स्वयं फ़ोल्डर को हटाने के बिना फ़ोल्डर को साफ करने के लिए भी उपयोग कर सकते हैं
एक फ़ोल्डर के बिना सामग्री को हटाने के लिए आप निम्नलिखित का उपयोग कर सकते हैं:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
PowerShell ISE में काम नहीं किया , लेकिन यह नियमित PowerShell CLI के माध्यम से काम करता है।
आशा है कि ये आपकी मदद करेगा। यह मुझे बैननेस चला रहा था।
PowerShell CLI
विकसित होने के दौरान कॉल करने और न होने पर फ़ाइनली यह फ़ोल्डर हटा दिया गया था PowerShell ISE
।
नीचे माइकल फ्रीजिम के उत्तर की कॉपी-पेस्ट करने योग्य कार्यान्वयन है
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 में थी, इसलिए मुझे अपनी शक्तियाँ प्रशासक के रूप में चलानी पड़ीं,
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)
$ सच - पुनरावर्ती हटाने के लिए राज्यों
$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
}
यह मेरे लिए काम किया:
Remove-Item C:\folder_name -Force -Recurse