मैं विंडोज का उपयोग करता हूं।
मैं सिस्टम कॉल द्वारा एक फ़ोल्डर में सभी फ़ाइलों और फ़ोल्डरों को हटाना चाहता हूं।
मैं इस तरह से कॉल कर सकता हूं:
>rd /s /q c:\destination
>md c:\destination
क्या आप एक आसान तरीका जानते हैं?
मैं विंडोज का उपयोग करता हूं।
मैं सिस्टम कॉल द्वारा एक फ़ोल्डर में सभी फ़ाइलों और फ़ोल्डरों को हटाना चाहता हूं।
मैं इस तरह से कॉल कर सकता हूं:
>rd /s /q c:\destination
>md c:\destination
क्या आप एक आसान तरीका जानते हैं?
जवाबों:
नहीं, मैं एक नहीं जानता।
यदि आप किसी कारण के लिए मूल निर्देशिका (एसीएल, और सी।) को बनाए रखना चाहते हैं, और इसके बजाय वास्तव में इसे खाली करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:
del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"
यह पहले निर्देशिका से सभी फ़ाइलों को हटाता है, और फिर पुन: सभी नेस्टेड निर्देशिकाओं को निकालता है, लेकिन कुल मिलाकर शीर्ष-स्तरीय निर्देशिका को बनाए रखते हुए (अपनी सामग्री को छोड़कर)।
ध्यान दें कि एक बैच फ़ाइल के %
भीतर आपको for
लूप के भीतर दोगुना करने की आवश्यकता है :
del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
destination
को रास्ते से प्रतिस्थापित करते हैं , संभवत: यदि आवश्यक हो तो पूरी बात के उद्धरण का उपयोग कर।
del c:\destination\*.* /s /q
मेरे लिए काम किया। मुझे उम्मीद है कि आपके लिए भी काम करेगा।
del *.*
del "../../server/front-end\*.*"
मुझे लगता है कि यह करने का सबसे आसान तरीका है:
rmdir /s /q "C:\FolderToNotToDelete\"
पथ में अंतिम "\" महत्वपूर्ण हिस्सा है।
mkdir C:\FolderToNotToDelete
मेरे लिए पर्याप्त था :)
हाँ! शक्तियों का उपयोग करें:
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
फ़ाइल हटाने के लिए:
del PATH_TO_FILE
इसमें सभी फ़ाइलों के साथ फ़ोल्डर को हटाने के लिए:
rmdir /s /q PATH_TO_FOLDER
विशिष्ट फ़ोल्डर से सभी फ़ाइलों को हटाने के लिए (फ़ोल्डर को स्वयं नहीं हटाना) थोड़ा जटिल है। del /s *.*
फ़ोल्डरों को हटा नहीं सकता, लेकिन सभी सबफ़ोल्डर से फ़ाइलों को हटा देता है। तो दो आज्ञाओं की आवश्यकता है:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
आप इस तरह से (फ़ोल्डर या फ़ाइल) जो चाहें उसे हटाने के लिए एक स्क्रिप्ट बना सकते हैं mydel.bat
:
@echo off
setlocal enableextensions
if "%~1"=="" (
echo Usage: %0 path
exit /b 1
)
:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1
:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%
उपयोग का कुछ उदाहरण:
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
एक आसान एक-लाइन विकल्प आपके फ़ाइल सिस्टम पर कहीं एक खाली निर्देशिका बनाना है, और फिर सभी फ़ाइलों को हटाने के लिए स्विच के साथ ROBOCOPY
( http://technet.microsoft.com/en-us/library/cc733145.aspx ) का उपयोग /MIR
करें और सबफ़ोल्डर्स। डिफ़ॉल्ट रूप से, रोबोकॉपी सुरक्षा की प्रतिलिपि नहीं बनाती है, इसलिए आपके रूट फ़ोल्डर में एसीएल बरकरार रहना चाहिए।
इसके अलावा शायद रिट्री स्विच के लिए एक मूल्य निर्धारित करना चाहते हैं /r
, क्योंकि रिट्रीट की डिफ़ॉल्ट संख्या 1 मिलियन है।
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
मेरे पास 33 फ़ोल्डर के साथ एक इंडेक्स फ़ोल्डर था जिसमें उन्हें हटाए गए सभी फ़ाइलों और सबफ़ोल्डर्स की आवश्यकता थी। मैंने इंडेक्स फ़ोल्डर में एक कमांड लाइन खोली और फिर इन कमांड्स का उपयोग किया:
for /d in (*) do rd /s /q "%a" & (
md "%a")
मैंने उन्हें दो पंक्तियों में अलग कर दिया (पहली पंक्ति के बाद हिट दर्ज करें, और जब दूसरी पंक्ति में और अधिक जोड़ने के लिए कहा जाए) क्योंकि अगर एक ही पंक्ति में प्रवेश किया जाता है तो यह काम कर सकता है। यह कमांड प्रत्येक निर्देशिका को मिटा देगा और फिर एक नया बना देगा जो खाली है, इस प्रकार मूल निर्देशिका में सभी फ़ाइलों और सबफ़ोल्डर्स को हटा रहा है।
मूल निर्देशिका पर नेविगेट करें
उप फ़ोल्डर हटाएँ
/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt
pushd
हैं तो आपको popd
भी उपयोग करना होगा । दुर्भाग्य से, popd
जब आप निर्देशिका को हटाते हैं तो यह काम नहीं करता है। तो, आपको cd
इसके बजाय करना होगा pushd
।
इसे आज़माएं, यह सब रूट रूट के तहत सभी MyFolder को खोजेगा और MyFolder नाम के सभी फ़ोल्डरों को हटा देगा
for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"