Eu uso o Windows.
Quero excluir todos os arquivos e pastas em uma pasta por chamada de sistema.
Posso chamar assim:
>rd /s /q c:\destination
>md c:\destination
Você conhece uma maneira mais fácil?
Eu uso o Windows.
Quero excluir todos os arquivos e pastas em uma pasta por chamada de sistema.
Posso chamar assim:
>rd /s /q c:\destination
>md c:\destination
Você conhece uma maneira mais fácil?
Respostas:
Não, eu não conheço nenhum.
Se você deseja reter o diretório original por algum motivo (ACLs etc.) e, em vez disso, deseja realmente esvaziá-lo, você pode fazer o seguinte:
del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"
Isso primeiro remove todos os arquivos do diretório e, em seguida, remove recursivamente todos os diretórios aninhados, mas no geral mantendo o diretório de nível superior como está (exceto por seu conteúdo).
Observe que, em um arquivo em lote, você precisa dobrar o %
dentro do for
loop:
del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
destination
pelo caminho, possivelmente usando aspas em torno de tudo, se necessário.
del c:\destination\*.* /s /q
trabalhou para mim. Espero que funcione para você também.
del *.*
del "../../server/front-end\*.*"
Acho que a maneira mais fácil de fazer isso é:
rmdir /s /q "C:\FolderToNotToDelete\"
O último "\" no caminho é a parte importante.
mkdir C:\FolderToNotToDelete
foi o suficiente para mim :)
Sim! Use o PowerShell:
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
Para excluir o arquivo:
del PATH_TO_FILE
Para excluir uma pasta com todos os arquivos nela:
rmdir /s /q PATH_TO_FOLDER
Excluir todos os arquivos de uma pasta específica (não excluir a própria pasta) é um pouco complicado. del /s *.*
não pode excluir pastas, mas remove arquivos de todas as subpastas. Portanto, são necessários dois comandos:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
Você pode criar um script para excluir o que quiser (pasta ou arquivo) como este 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%
Alguns exemplos de uso:
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
Uma opção fácil de uma linha é criar um diretório vazio em algum lugar do seu sistema de arquivos e, em seguida, usar ROBOCOPY
( http://technet.microsoft.com/en-us/library/cc733145.aspx ) com a /MIR
opção para remover todos os arquivos e subpastas. Por padrão, o robocopy não copia a segurança, portanto, as ACLs em sua pasta raiz devem permanecer intactas.
Também é provável que você queira definir um valor para a opção de repetição /r
, porque o número padrão de tentativas é 1 milhão.
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
Eu tinha uma pasta de índice com 33 pastas que precisavam de todos os arquivos e subpastas removidos delas. Abri uma linha de comando na pasta de índice e usei estes comandos:
for /d in (*) do rd /s /q "%a" & (
md "%a")
Eu os separei em duas linhas (pressione Enter após a primeira linha e, quando solicitado, adicione a segunda linha) porque, se inserido em uma única linha, pode não funcionar. Este comando irá apagar cada diretório e então criar um novo que está vazio, removendo assim todos os arquivos e subpastas no diretório original.
Navegue até o diretório pai
Exclua as subpastas
/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt
pushd
tem que usar popd
também. Infelizmente, popd
não funciona quando você exclui o diretório. Então, você tem que fazer em cd
vez de pushd
.
tente fazer isso, isso irá pesquisar toda MinhaPasta no diretório raiz e excluir todas as pastas chamadas MinhaPasta
for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"
del .\*
Este comando exclui todos os arquivos e pastas da navegação atual em sua linha de comando.