Простой способ сделать это - копировать каталог Windows снова и снова, просто создавая дополнительные копии, пока не закончится свободное место. Удалите только что созданные копии. Затем сделайте это снова столько раз, сколько считаете нужным (проходит).
Это эффективно перезаписывает все свободное место на диске.
ОБНОВЛЕНО:
Вот пакетный файл для автоматизации процесса. Я проверил это на старой версии FreeDOS, работающей в гостевой системе VMware. Я думаю, что это должно работать на DOS 5 и новее.
Поместите этот файл в корень диска C: (т.е.:) C:\CLEAN.BAT
и запустите его оттуда.
Каждый раз, когда он запускается, он «перезаписывает» один раз. Затем вы должны удалить все файлы в C:\TMP
каталоге, чтобы освободить место ( C:\TMP>DEL *.*
). (Я не хотел, чтобы командный файл самостоятельно удалял какие-либо файлы, на всякий случай.)
Вы можете запустить его столько раз, сколько считаете необходимым. Каждый раз, когда вы запускаете его, он перезаписывается один раз, так что вы можете запустить его пару или три раза, чтобы быть в безопасности.
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
Файл SETUP.EXE в моем каталоге Windows 3.1 чуть меньше 500 КБ. Чтобы немного ускорить процесс, я копирую его (дважды) в новый файл и использую его, чтобы процесс эффективно уничтожил все, кроме около 950 КБ диска. Вы можете выбрать меньший файл, чтобы получить более детальный, но у вас могут возникнуть проблемы с наличием слишком большого количества файлов в одном каталоге.
Кроме того, FreeDOS не изменяет, errorlevel
когда операция копирования завершается неудачно. MSDOS всегда хорошо относился к errorlevel
ответам, так что вам не стоит на них останавливаться. Если он начинает говорить, что ему не удалось скопировать временный файл из-за дискового пространства, вы можете безопасно остановить ( Ctrl+C
) процесс.