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?
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?
No, I don't know one.
If you want to retain the original directory for some reason (ACLs, &c.), and instead really want to empty it, then you can do the following:
del /q destination\* for /d %x in (destination\*) do @rd /s /q "%x" This first removes all files from the directory, and then recursively removes all nested directories, but overall keeping the top-level directory as it is (except for its contents).
Note that within a batch file you need to double the % within the for loop:
del /q destination\* for /d %%x in (destination\*) do @rd /s /q "%%x" destination by the path, possibly using quotes around the whole thing if necessary.del c:\destination\*.* /s /q worked for me. I hope that works for you as well.
del *.*del "../../server/front-end\*.*"*.* mask used will skip files that do not have an extension. For example makefile. Mask must be used *.I think the easiest way to do it is:
rmdir /s /q "C:\FolderToDelete\" The last "" in the path is the important part.
This deletes the folder itself. To retain, add mkdir "C:\FolderToDelete\" to your script.
mkdir C:\FolderToNotToDelete was enough for me :)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 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.
Navigate to the parent directory
Delete the sub folders
pushd you have to use popd too. Unfortunately, popd does not work when you delete the directory. So, you have to do cd instead of pushd.It takes 2 simple steps. [/q means quiet, /f means forced, /s means subdir]
Empty out the directory to remove
del *.* /f/s/q Remove the directory
cd .. rmdir dir_name /q/s