Что нового

определение папки Program Files (x86) или Program Files

zbz

Новичок
Сообщения
74
Репутация
1
Версия AutoIt: 3.

Описание:
помогите пожалуйста максимально упростит скрипт:
Код:
If FileExists(@HomeDrive &"\Program Files (x86)\file.exe") Then
	If FileExists(@HomeDrive &"\Program Files\file.exe") Then
	Else
	FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files\file.exe")
	EndIf	
Else
FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files (x86)\file.exe")
EndIf
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
If Not FileExists(@HomeDrive &"\Program Files (x86)\file.exe") Then
	FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files (x86)\file.exe")
ElseIf Not FileExists(@HomeDrive &"\Program Files\file.exe") Then
	FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files\file.exe")
EndIf
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
hedji.
беру на заметку, такое ощущения что есть метод попроще или это окончательное решения?
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Смотря что именно вы пытаетесь сделать.
В х64 винде есть обе папки Program Files.
В функции FileCopy третий параметр отвечает за перезапись файлов.
Т.е. можно свести до:
Код:
FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files (x86)\file.exe", 0)
FileCopy (@ScriptDir &"\file.exe",@HomeDrive & "\Program Files\file.exe", 0)

Но я не уверен что это именно желаемый результат.
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
да не желаемый результат. Есть папка с программой (х86) в ~600 мегов, не приемлемо копировать в обе папки Program Files
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Можно обойтись всего одной строкой
Код:
If Not FileExists(@ProgramFilesDir &'\file.exe') Then FileCopy (@ScriptDir &'\file.exe',@ProgramFilesDir &'\file.exe')

только запускать и компилировать нужно как для х86 .
Более того , достаточно и просто этого:
Код:
FileCopy (@ScriptDir &'\file.exe',@ProgramFilesDir &'\file.exe')

С ключем по умолчанию "0" будет копироваться в том случае, если файла нет
 
Верх