I use Windows.
I want to delete all files and folders in a folder by system call.
I may call like that:
>rd /s /q c:\destination
>md c:\destination
Do you know an easier way?
This question is related to
windows
batch-file
I had an index folder with 33 folders that needed all the files and subfolders removed in them. I opened a command line in the index folder and then used these commands:
for /d in (*) do rd /s /q "%a" & (
md "%a")
I separated them into two lines (hit enter after first line, and when asked for more add second line) because if entered on a single line this may not work. This command will erase each directory and then create a new one which is empty, thus removing all files and subflolders in the original directory.
If the subfolder names may contain spaces you need to surround them in escaped quotes. The following example shows this for commands used in a batch file.
set targetdir=c:\example
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"
Navigate to the parent directory
Delete the sub folders
Yes! Use Powershell:
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
To delete file:
del PATH_TO_FILE
To delete folder with all files in it:
rmdir /s /q PATH_TO_FOLDER
To delete all files from specific folder (not deleting folder itself) is a little bit complicated. del /s *.*
cannot delete folders, but removes files from all subfolder. So two commands are needed:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
You can create a script to delete whatever you want (folder or file) like this 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%
Few example of usage:
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
One easy one-line option is to create an empty directory somewhere on your file system, and then use ROBOCOPY
(http://technet.microsoft.com/en-us/library/cc733145.aspx) with the /MIR
switch to remove all files and subfolders. By default, robocopy does not copy security, so the ACLs in your root folder should remain intact.
Also probably want to set a value for the retry switch, /r
, because the default number of retries is 1 million.
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
del c:\destination\*.* /s /q
worked for me. I hope that works for you as well.
try this, this will search all MyFolder under root dir and delete all folders named MyFolder
for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"
I think the easiest way to do it is:
rmdir /s /q "C:\FolderToNotToDelete\"
The last "\" in the path is the important part.
del .\*
This Command delete all files & folders from current navigation in your command line.
Source: Stackoverflow.com