Что нового

[Автоматизация] Как сделать несколько true в Case?

warezoogle3

Новичок
Сообщения
73
Репутация
1
Почитал вот это в справке о Case:
"Если выражение справедливо, то выполняются все следующие за ним команды вплоть до следующего выражения Case или EndSelect. Если окажутся справедливыми несколько выражений Case, то будет выполнены команды только первого из них."

"If the expression is true the following statements up to the next Case or EndSelect statement are executed. If more than one of the Case statements are true, only the first one is executed."

А можно ли сделать так,чтобы все справедливые выражения выполнялись?

Например:
Код:
Select
	Case FileExists("C:\A.exe")
		FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "C:\LSBANK\A.exe", 1)

	Case FileExists("D:\A.exe")
		FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "D:\LSBANK\A.exe", 1)

	Case FileExists("E:\A.exe")
		FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "E:\LSBANK\A.exe", 1)

	Case FileExists("F:\A.exe")
		FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "F:\LSBANK\A.exe", 1)

    Case Else
		MsgBox(16,"Program","Program not found")
EndSelect



Тоесть,например,если и на C:\, и на D:\ есть старая версия A.exe,то она заменяется на новую на ОБОИХ дисках и т.д.!

Заранее огромное спасибо! :smile: :beer: :IL_AutoIt_1:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,717
Код:
$Flag = 0
If FileExists("C:\A.exe") Then
	FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "C:\LSBANK\A.exe", 1)
	$Flag = 1
EndIf
If FileExists("D:\A.exe") Then
	FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "D:\LSBANK\A.exe", 1)
	$Flag = 1
EndIf
If FileExists("E:\A.exe") Then
	FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "E:\LSBANK\A.exe", 1)
	$Flag = 1
EndIf
If FileExists("F:\A.exe") Then
	FileInstall("C:\Documents and Settings\Test\Desktop\Update\A.exe", "F:\LSBANK\A.exe", 1)
	$Flag = 1
EndIf
If Not $Flag Then
	MsgBox(16, "Program", "Program not found")
EndIf
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Я поднимал вопрос в этой теме и на оф. форуме.
В общем, с Case в AutoIt такого не сделать (причем никогда), хотя в Си и Си-подобных языках, если после выполненного Case не поставить break, то будут проверяться все последующие условия Case.
 
Автор
W

warezoogle3

Новичок
Сообщения
73
Репутация
1
Спасибо огромное! Все отлично работает! :beer: :IL_AutoIt_1:
 
Верх