Автор Тема: Удалить файлы в каталоге либо четные, либо нечетные  (Прочитано 248 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grizli [?]

  • Новичок
  • *
  • Сообщений: 40
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Версия AutoIt: 3.
3.3.14.0
Описание:
Здравствуйте, нужна простенькая программа, у которой появляется стандартное окно выбора файла, в каталоге лежат изображения с возрастающей нумерацией. нужно если выбран нечетный файл удалить все нечетные файлы в каталоге, если выбран четный файл соответственно удалить все четные.
Примечания:

Русское сообщество AutoIt


Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2695
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
удалять по имени-номеру или по нумерации поиска?
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Grizli [?]

  • Новичок
  • *
  • Сообщений: 40

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
По последней цифре, не важна маска имени, если в конце четная цифра то четный, если нечетная то нечетный

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3813
  • Репутация: 1006
    • Награды
  • Версия AutoIt: 3.3.14.0
Grizli
Сделал вывод файлов в консоль SciTE. Если всё правильно, то раскомментируйте нужный режим удаления самостоятельно ;)
И не забудьте сделать резервную копию
Код: AutoIt [Выделить]
#include <File.au3>

Global $sFullName = FileOpenDialog("", "", "(*.*)", 3)
If @error Then Exit

Global $sDrive, $sDir, $sName, $sExt, $sPath, $sInt, $fOdd

_PathSplit($sFullName, $sDrive, $sDir, $sName, $sExt)
$sPath = $sDrive & $sDir
$sInt = StringRight($sName, 1)
If Not ($sInt == "0" Or Number($sInt)) Then Exit MsgBox(0, "Error", "Нумерация не обнаружена")
$fOdd = Mod($sInt, 2) = False

Global $aFiles = _FileListToArray($sPath, "*", 1)
If @error Then Exit MsgBox(0, "Error", "Ошибка поиска файлов")

For $i = 1 To $aFiles[0]
  $sInt = StringMid($aFiles[$i], StringInStr($aFiles[$i], ".", 0, -1) - 1 , 1)
  If Not ($sInt == "0" Or Number($sInt)) Then ContinueLoop
  If ($fOdd And Not Mod($sInt, 2)) Or (Not $fOdd And Mod($sInt, 2)) Then
    ConsoleWrite($sPath & $aFiles[$i] & @CRLF)
    ; FileRecycle($sPath & $aFiles[$i]) ; удаление в корзину
    ; FileDelete($sPath & $aFiles[$i]) ; полное удаление
  EndIf
Next


Русское сообщество AutoIt

Re: Удалить файлы в каталоге либо четные, либо нечетные
« Ответ #3 Отправлен: Июнь 26, 2018, 19:29:39 »

Оффлайн Grizli [?]

  • Новичок
  • *
  • Сообщений: 40

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
отлично. спасибо!

Русское сообщество AutoIt

Re: Удалить файлы в каталоге либо четные, либо нечетные
« Ответ #4 Отправлен: Июнь 27, 2018, 17:16:17 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
5326 Просмотров
Последний ответ Октябрь 04, 2011, 16:08:48
от YOgen
2 Ответов
5605 Просмотров
Последний ответ Март 31, 2010, 19:34:34
от madmasles
4 Ответов
2575 Просмотров
Последний ответ Февраль 15, 2011, 17:16:45
от `p r o x y
18 Ответов
11929 Просмотров
Последний ответ Март 03, 2011, 01:10:17
от Kaster
13 Ответов
5589 Просмотров
Последний ответ Июль 19, 2011, 23:56:15
от CreatoR
3 Ответов
2612 Просмотров
Последний ответ Май 31, 2012, 15:58:13
от Foley
14 Ответов
5876 Просмотров
Последний ответ Август 04, 2012, 09:44:56
от CreatoR
4 Ответов
1784 Просмотров
Последний ответ Декабрь 24, 2012, 21:58:40
от madmasles
14 Ответов
1925 Просмотров
Последний ответ Октябрь 16, 2014, 18:05:25
от InnI
30 Ответов
2305 Просмотров
Последний ответ Март 19, 2017, 22:53:16
от Alofa