Что нового

Как сделать меню выбора диска

Tuxzer92

Новичок
Сообщения
65
Репутация
0
Есть скрипт, который выполняет скачивание и установку ПО, но бывает так, что при разбивке на разделы не правильно присваивают буквы разделам. Например диск D: вполне может оказаться приводом, а сам диск иметь букву Е. В связи с этим возникает вопрос, как сделать так чтобы, если не найден диск D, выводить меню выбора диска на который ставить ПО.
Вот скрипт:
Код:
#RequireAdmin
#AutoIt3Wrapper_Res_Comment=Скрипт для автоматической установки минимального набора ПО

$ServerDir = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL"
$x86 = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL\Distr\Office2010x32"
$x64 = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL\Distr\Office2010x64"
$OutDir = "D:\"
$InstDir = "D:\Distr\"
$Ping = ping("debian-server")

	If $Ping Then
		If FileExists($ServerDir) Then
			If FileExists($OutDir) Then
				MsgBox(64, "AIS Script v0.1a", "Каталог с ПО найден. Копирую")
					If @OSArch ='x86' Then
						DirCopy($x86, $InstDir,1)
						DirCopy($ServerDir, $InstDir,1)
						RunWait($InstDir & "7z920.exe /S")
						DirCreate($InstDir & "Office2010x32\Office2010")
						RunWait('C:\Program Files\7-Zip\7z.exe x "D:\Distr\Office2010x32\Microsoft Office 2010 Professional Plus VL x86.iso"  -oD:\Distr\Office2010x32\Office2010')
						FileCopy($InstDir & "Office2010x32\Updates\",$InstDir & "Office2010x32\Office2010\Updates\",1)
						FileCopy($InstDir & "Office2010x32\32.MSP",$InstDir & "Office2010x32\Office2010\",1)
						RunWait($InstDir & "Office2010x32\Office2010\setup.exe /adminfile D:\Distr\Office2010x32\Office2010\32.MSP")
						Runwait($InstDir & "Office2010x32\mini-KMS Activator 1.3 Office 2010 VL.exe /os")
					Else
						MsgBox(64,"AIS Script v0.1a","x64 разрядная система")
						DirCopy($x64, $InstDir,1)
						DirCopy($ServerDir, $InstDir,1)
						RunWait($InstDir & "7z920.exe /S")
						DirCreate($InstDir & "Office2010x32\Office2010")
						RunWait('C:\Program Files(x86)\7-Zip\7z.exe x "D:\Distr\Office2010x64\Microsoft Office 2010 Professional Plus VL x86.iso"  -oD:\Distr\Office2010x64\Office2010')
						FileCopy($InstDir & "Office2010x64\Updates\",$InstDir & "Office2010x64\Office2010\Updates\",1)
						FileCopy($InstDir & "Office2010x64\64.MSP",$InstDir & "Office2010x64\Office2010\",1)
						RunWait($InstDir & "Office2010x64\Office2010\setup.exe /adminfile D:\Distr\Office2010x64\Office2010\64.MSP")
						Runwait($InstDir & "Office2010x64\mini-KMS Activator 1.3 Office 2010 VL.exe /os")
					EndIf
				Runwait("msiexec /i D:\Distr\adobe_flash_player\install_flash_player_14_active_x.msi /passive")
				Runwait("msiexec /i D:\Distr\adobe_flash_player\install_flash_player_14_plugin.msi /passive")
				Runwait($InstDir & "ccsetup416_slim.exe /S")
				RunWait($InstDir & "winamp556_full_emusic-7plus_ru-ru.exe /S /install=SFDR")
				Runwait($InstDir & "K-Lite\K-Lite_Codec_Pack_1065_Mega.exe /verysilent /norestart /LoadInf=.\klcp_mega_unattended.ini")
				Runwait("msiexec /i D:\Distr\Far30b3800.x86.20140208.msi /passive")
				Runwait($InstDir & "tcmd750a\INSTALL.EXE")
				FileCopy($InstDir & "tcmd750a\wincmd.key","C:\totalcmd\",1)
				Runwait($InstDir & "FSViewerSetup51.exe /S")
				RunWait($InstDir & "WinRAR 4.20.exe -a4RAi")
				WinWaitClose("Установка WinRAR 4.20")
			Else
				MsgBox(16,"AIS Script v0.1a", "Диска " & $OutDir &" нет")
			EndIf
		Else
				MsgBox(16,"AIS Script v0.1a", "Каталог с ПО не существует!")
		EndIf
	Else
		MsgBox(16, "AIS Script v0.1a", "Debian-server не доступен!")
	EndIf
MsgBox(64, "AIS Script v0.1a", "Готово!")

Спасибо!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Tuxzer92,
А Ваш диск D:\ не тот диск, на котором установлена Windows?
 

Olim98

Новичок
Сообщения
48
Репутация
2
Tuxzer92

Вот накалякал)))
Код:
#RequireAdmin
#AutoIt3Wrapper_Res_Comment=Скрипт для автоматической установки минимального набора ПО

$ServerDir = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL"
$x86 = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL\Distr\Office2010x32"
$x64 = "\\debian-server\FILES\SOFT\MINIMUM_INSTALL\Distr\Office2010x64"
$InstallDrive = "D:\"
$Ping = Ping("debian-server")

If $Ping Then
	If FileExists($ServerDir) Then
		If (FileExists($InstallDrive)) And (DriveGetType($InstallDrive) = "Fixed") Then
			Install()
		Else
			$InstallDirNew = FileSelectFolder("Выберите диск для установки программ", 2 + 4, $InstallDrive)
			Install($InstallDirNew)
		EndIf
	Else
		MsgBox(16, "AIS Script v0.1a", "Каталог с ПО не существует!")
	EndIf
Else
	MsgBox(16, "AIS Script v0.1a", "Debian-server не доступен!")
EndIf
MsgBox(64, "AIS Script v0.1a", "Готово!")

Func Install($InstallDir = "D:\Distr\")
	MsgBox(64, "AIS Script v0.1a", "Каталог с ПО найден. Копирую")
	If @OSArch = 'x86' Then
		DirCopy($x86, $InstallDir, 1)
		DirCopy($ServerDir, $InstallDir, 1)
		RunWait($InstallDir & "7z920.exe /S")
		DirCreate($InstallDir & "Office2010x32\Office2010")
		RunWait('C:\Program Files\7-Zip\7z.exe x "D:\Distr\Office2010x32\Microsoft Office 2010 Professional Plus VL x86.iso"  -oD:\Distr\Office2010x32\Office2010')
		FileCopy($InstallDir & "Office2010x32\Updates\", $InstallDir & "Office2010x32\Office2010\Updates\", 1)
		FileCopy($InstallDir & "Office2010x32\32.MSP", $InstallDir & "Office2010x32\Office2010\", 1)
		RunWait($InstallDir & "Office2010x32\Office2010\setup.exe /adminfile D:\Distr\Office2010x32\Office2010\32.MSP")
		RunWait($InstallDir & "Office2010x32\mini-KMS Activator 1.3 Office 2010 VL.exe /os")
	Else
		MsgBox(64, "AIS Script v0.1a", "x64 разрядная система")
		DirCopy($x64, $InstallDir, 1)
		DirCopy($ServerDir, $InstallDir, 1)
		RunWait($InstallDir & "7z920.exe /S")
		DirCreate($InstallDir & "Office2010x32\Office2010")
		RunWait('C:\Program Files(x86)\7-Zip\7z.exe x "D:\Distr\Office2010x64\Microsoft Office 2010 Professional Plus VL x86.iso"  -oD:\Distr\Office2010x64\Office2010')
		FileCopy($InstallDir & "Office2010x64\Updates\", $InstallDir & "Office2010x64\Office2010\Updates\", 1)
		FileCopy($InstallDir & "Office2010x64\64.MSP", $InstallDir & "Office2010x64\Office2010\", 1)
		RunWait($InstallDir & "Office2010x64\Office2010\setup.exe /adminfile D:\Distr\Office2010x64\Office2010\64.MSP")
		RunWait($InstallDir & "Office2010x64\mini-KMS Activator 1.3 Office 2010 VL.exe /os")
	EndIf
	RunWait("msiexec /i D:\Distr\adobe_flash_player\install_flash_player_14_active_x.msi /passive")
	RunWait("msiexec /i D:\Distr\adobe_flash_player\install_flash_player_14_plugin.msi /passive")
	RunWait($InstallDir & "ccsetup416_slim.exe /S")
	RunWait($InstallDir & "winamp556_full_emusic-7plus_ru-ru.exe /S /install=SFDR")
	RunWait($InstallDir & "K-Lite\K-Lite_Codec_Pack_1065_Mega.exe /verysilent /norestart /LoadInf=.\klcp_mega_unattended.ini")
	RunWait("msiexec /i D:\Distr\Far30b3800.x86.20140208.msi /passive")
	RunWait($InstallDir & "tcmd750a\INSTALL.EXE")
	FileCopy($InstallDir & "tcmd750a\wincmd.key", "C:\totalcmd\", 1)
	RunWait($InstallDir & "FSViewerSetup51.exe /S")
	RunWait($InstallDir & "WinRAR 4.20.exe -a4RAi")
	WinWaitClose("Установка WinRAR 4.20")
EndFunc   ;==>Install
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Tuxzer92 [?]
Нет. Винда стоит на C:\
То есть нужно дать возможность выбрать любой диск (Fixed), кроме диска C:\, если нет диска D:\, я правильно понимаю? Или можно автоматически выбрать такой диск (если он, конечно, есть)? И что делать, если есть только один диск C:\?
 
Автор
T

Tuxzer92

Новичок
Сообщения
65
Репутация
0
madmasles сказал(а):
Tuxzer92 [?]
Нет. Винда стоит на C:\
То есть нужно дать возможность выбрать любой диск (Fixed), кроме диска C:\, если нет диска D:\, я правильно понимаю? Или можно автоматически выбрать такой диск (если он, конечно, есть)? И что делать, если есть только один диск C:\?
Нужно предоставить самому выбирать. Так будет проще )


Добавлено:
Сообщение автоматически объединено:

В принципе можно сделать так чтобы изначально можно было выбрать место установки вне зависимости от того какие диски есть.
 
Верх