Já vi muitas variações da minha situação, mas não consigo encontrar uma com a qual me sinta confortável (muito inexperiente). Basicamente eu tenho uma pasta (E:\Downloads) à qual as pastas são adicionadas e também contém um arquivo em lote (Extractor.bat). Gostaria de, uma vez por semana, excluir todas as pastas e arquivos de E:\Downloads, mas NUNCA excluir Extractor.bat. Obrigado por qualquer ajuda sobre isso! (A parte uma vez por semana não é necessária no script, sei que posso simplesmente definir uma tarefa do Windows para executar o arquivo bat em dias específicos).
Janelas 10
Responder1
Veja a Set DEBUG=echo
linha?
Desative esta linha com REM
ou ::
quando tiver certeza de que ela está fazendo o que você deseja. Este script é inofensivo enquanto existir.. nem tanto se você removê-lo.
A if /i not "%DownloadsDir%" == "%CD%"
linha vem de ser estúpido e jogar fora todos os meus arquivos no diretório errado quando eu era mais jovem e mais burro.
Além disso .. você pode alterar cd /d
para pushd
e colocar um popd
na parte inferior se estiver executando isso em cmd.exe e isso atrapalhar seu caminho atual.
@echo off
SetLocal
Set DEBUG=echo
Set DownloadsDir=E:\Downloads
cd /d %DownloadsDir%
if /i not "%DownloadsDir%" == "%CD%" echo Bad directory! && goto :EOF
for /F "delims=" %%d in ('dir /ad /b') do %DEBUG% rd /s /q "%%d"
for %%f in (*.*) do if /i not "%%f"=="Extractor.bat" %DEBUG% del /F /Q "%%f"
EndLocal