Что нового

Удаление файлов и папок из списка.

Fergus

Новичок
Сообщения
11
Репутация
0
Версия AutoIt: 3.3.8.1

Описание: После удаления программы остается мусор в файловой системе, чтобы его не удалять вручную, необходимо автоматизировать этот процесс. Имеется текстовый файл Удаление.txt в котором записаны файлы и папки на удаление, например такого вида:
C:\Config.Msi\65e62.rbf
C:\Documents and Settings\Имя Пользователя\Application Data\fontcacheev1.dat
причем некоторые папки и файлы имеют случайное имя (вместо звездочки случайные цифры, которые неизвестны)
С:\WINDOWS\Installer\MSI*.tmp- (эти папки пустые)
С:\WINDOWS\Prefetch\RUNDLL32.EXE-*.pf
Необходимо чтобы скрипт удалял все согласно списку и выводил лог удаление на рабочий стол, так как некоторых файлов может и не быть.

Примечания:
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так ?:
Код:
#include <File.au3>

Global $DelFile = @ScriptDir & '\del.txt'

$Count = _FileCountLines($DelFile)
For $i = 1 To $Count
	$ReadLine = FileReadLine($DelFile, $i)
	$iReg = StringRegExpReplace($ReadLine, '.*\.(\S+)', '\1')
	If $iReg = $ReadLine Then
		If FileExists($ReadLine) Then
			DirRemove($ReadLine, 1)
			FileWriteLine(@DesktopDir & '\log.txt', 'Папка: ' & $ReadLine & ' успешно удалена.')
		Else
			FileWriteLine(@DesktopDir & '\log.txt', 'Папка: ' & $ReadLine & ' не найдена.')
		EndIf
	Else
		If FileExists($ReadLine) Then
			FileDelete($ReadLine)
			FileWriteLine(@DesktopDir & '\log.txt', 'Файл: ' & $ReadLine & ' успешно удален.')
		Else
			FileWriteLine(@DesktopDir & '\log.txt', 'Файл: ' & $ReadLine & ' не найден.')
		EndIf
	EndIf
Next
MsgBox(0, 'Test', 'Complete')
 
Автор
F

Fergus

Новичок
Сообщения
11
Репутация
0
В основном все получилось, но почему то скрипт считает С:\WINDOWS\Installer\MSI*.tmp- файлом и пишет что удален, а это папки и они не удалились. Можно как-то подправить скрипт.
 
Верх