Тотальная неудачница и убийца жёстких дисков.
#post-id: 3631-16-49
#original-date: 5.07.2010 Mon
#original-time: 4:49 PM
#original-day:  3631
#original-host: WinXP Prof SP3 (Build 2600)

Наконец победила Clear Recycle Bins.VBS. Не пришлось ни писать программу, ни отказываться в пользу Clear Recent скриптов.

Напомню, что тогда я обнаружила, что скрипт этот при отчистке корзинок радостно выносит содержимое сиволических ссылок. Оказалось, что даже если лично не лезть в них, то DeleteFile (из Scripting Runtime) всё равно рекурсивно вынесет все файлы вместо вызова RemoveDirectory(). Я хотела использовать RunDLL32 для вызова API функции, но всё оказалось не так просто, и способ не заработал.

Только что я додумалась прикрутить вызов %COMSPEC% с командой RMDIR! В NT она также позволяет рекурсивно выносить файлы (аки DelTree), но только с ключём, так что не страшно. Получилось немного извращённо, но зато встроенные средства.

Правда, меня смущало то, что была опасность не узнать, как вообще прошлё удаление, но к счастью в консоли есть ERRORLEVEL, и при вызове CMD он передаётся вызывающей программе как код завершения процесса. Не ноль - случилась ошибка. Вот так вот.



Кстати, почему я юзаю %COMSPEC%? Всё дело в том, что я не хочу руками выяснять, что это за система, и что мне следует вызывать: Command.COM или CMD. А %COMSPEC% существует ещё со времён DOS, и проживёт ещё столько же.