Uma maneira simples de fazer isso é copiar o diretório do Windows várias vezes, apenas fazendo cópias adicionais dele, até ficar sem espaço. Exclua as cópias que você acabou de criar. Então faça isso novamente quantas vezes você achar necessário (passa).
Isso substitui efetivamente todo o espaço livre no disco.
ATUALIZADO:
Aqui está um arquivo em lotes para automatizar o processo. Eu testei em uma versão antiga do FreeDOS rodando em um convidado VMware. Eu acho que deveria funcionar no DOS 5 e mais recente.
Coloque este arquivo na raiz da sua unidade C: (ex .: C:\CLEAN.BAT
) e execute-o a partir daí.
Cada vez que é executado, ele "sobrescreve" uma vez. Em seguida, você deve excluir todos os arquivos no diretório C:\TMP
para liberar o espaço ( C:\TMP>DEL *.*
). (Eu não queria que o arquivo de lote excluísse quaisquer arquivos por conta própria, apenas no caso.)
Você pode executá-lo quantas vezes achar necessário. Cada vez que você executa, é uma sobrescrita única, então você pode querer executá-lo um par ou três vezes para estar seguro.
CLEAN.BAT
@ECHO OFF
IF "%1"=="" GOTO :INIT
:PARSE
SET ARG1=%1
SET ARG2=%2
SET ARG3=%3
SET ARG4=%4
IF NOT "%4"=="" GOTO :LAST
IF NOT "%3"=="" GOTO :LOOP4
IF NOT "%2"=="" GOTO :LOOP3
IF NOT "%1"=="" GOTO :LOOP2
:INIT
C:
CD\
IF NOT EXIST "C:\TMP\" MKDIR C:\TMP >NUL
CHDIR C:\TMP
COPY C:\WINDOWS\SETUP.EXE SETUP.EXE >NUL
COPY SETUP.EXE+SETUP.EXE FILE.0 >NUL
:LOOP1
FOR %%E IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %%E
GOTO :END
:LOOP2
FOR %%F IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %%F
GOTO :END
:LOOP3
FOR %%G IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %ARG2% %%G
GOTO :END
:LOOP4
FOR %%H IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %ARG2% %ARG3% %%H
GOTO :END
:LAST
COPY FILE.0 F%ARG1%%ARG2%%ARG3%%ARG4%.0
IF NOT "%ERRORLEVEL%"=="0" EXIT
GOTO :END
:END
O arquivo SETUP.EXE no meu diretório do Windows 3.1 é um pouco menos de 500 KB. Para acelerar um pouco o processo, copio-o (duas vezes) para um novo arquivo e o uso, para que o processo limpe efetivamente todos os 950KB da unidade. Você pode escolher um arquivo menor para ficar mais granular, mas pode ter problemas ao ter muitos arquivos em um único diretório.
Além disso, o FreeDOS não altera o errorlevel
quando uma operação de cópia falha. MSDOS sempre foi bom sobre as respostas errorlevel
, então você não deve correr para isso. Se ele começar a dizer que falhou ao copiar o arquivo temporário devido ao espaço em disco, você poderá interromper com segurança ( Ctrl+C
) o processo.