Что нового

Сортировка и раскладка файлов по папкам в зависимости от расширения

alex2887

Новичок
Сообщения
57
Репутация
0
Всем привет, помогите допилить простенький скрипт, который делает сортировку файлов в зависимости от расширения по папкам (*.mp3 - папка "музыка", *.rar - папка "архивы" и т.д). Хотелось бы сделать так, что если нет файла в данный момент с расширением *.exe, то папка "программы" не создавалась. И еще вопрос, как можно объединить в одну переменную расширения *.zip, *.rar, *.7z ?
Вот сам скрипт
Код:
$file = @ScriptDir & '\*.torrent'
$file2 = @ScriptDir & '\*.mp3'
$file3 = @ScriptDir & '\*.doc'

$folder = @ScriptDir & '\торрент'
$folder2 = @ScriptDir & '\музыка'

$folder3 = @ScriptDir & '\документы'
If $file Then
   DirCreate($folder)
   FileMove($file, $folder)

ElseIf $file2 Then
   DirCreate($folder2)
   FileMove($file2, $folder2)

Else $file3
DirCreate($folder3)
FileMove($file3, $folder3)
EndIf
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$res=@ScriptDir & '\*.zip'

Select
	Case StringRegExp($res, '.*\.(?:zip|rar|7z)')
		MsgBox(32,'',1)
EndSelect
Select
	Case StringRegExp($res, '.*\.exe')
		MsgBox(32,'',2)
EndSelect
 
Автор
A

alex2887

Новичок
Сообщения
57
Репутация
0
Sngr, я вот тут до Вашего ответа исправил у себя на компьютере как смог, мой скрипт тоже работает, имеет ли он право на "жизнь"? Правда у меня расширения не объединены как у Вас сделано. У меня проблемы с Условными операторами, и ключевыми словами, не совсем понимаю когда какие можно использовать :(
Исправленный скрипт
Код:
$file = @ScriptDir & '\*.torrent'
$file2 = @ScriptDir & '\*.mp3'
$file3 = @ScriptDir & '\*.doc'

$folder = @ScriptDir & '\торрент'
$folder2 = @ScriptDir & '\музыка'
$folder3 = @ScriptDir & '\документы'


If FileExists($file) Then
   DirCreate($folder)
   FileMove($file, $folder)
Elseif Not FileExists($file) Then
EndIf


If FileExists($file2) Then
   Dircreate($folder2)
   FileMove($file2, $folder2)
ElseIf Not FileExists($file2) Then
EndIf

If FileExists($file3) Then
   DirCreate($folder3)
   FileMove($file3, $folder3)
Elseif Not FileExists($file3) Then
EndIf
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
Elseif Not FileExists
это всё ненужно если ты не планируешь никаких действий при отсутсвии файлов, право на жизнь имеет любой код если он работает и ты понимаешь почему.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Мой вариант - в "$AllFiles" пишите расширения и названия папок , куда эти файлы писать, разделяя "|"
Код:
Local $AllFiles='exe|Программы,zip|Архивы,rar|Архивы,7z|Архивы'

$File=StringSplit($AllFiles,',')
For $i=1 to $File[0]
	$Ext=StringSplit($File[$i],'|')
	If FileExists( @ScriptDir&'\*.'&$Ext[1]) then FileMove ( @ScriptDir&'\*.'&$Ext[1], @ScriptDir&'\'&$Ext[2]&'\', 8 )
Next
 
Верх