2017-02-17 10 views
1

У меня есть файл ISO, который я скопировал с старого игрового диска. Но для того, чтобы я играл в игру, мне нужно установить ISO. Я написал небольшой пакетный файл, который запускает файл PowerShell .ps1 для монтирования ISO и затем запускает EXE для запуска игры после ее установки. Моя проблема в том, что если я запустил скрипт несколько раз, он снова установит ISO.Проверьте, что .ISO уже смонтирован в PowerShell, если нет, то установите

Я хочу проверить, прикреплен ли ISO, монтировать его, если это не так, или запустить EXE, если это так.

Вот что мне нужно для установки ISO:
Пакет.

ECHO "Mounting Stunt Track Driver" 

@ECHO off 

Powershell.exe -executionpolicy remotesigned 
-File "C:\Users\Allen\Documents\Games\Hot Wheels Stunt Track 
Driver\setup\hot98\mount.ps1" 

start /d "C:\Users\Allen\Documents\Games\Hot Wheels Stunt Track 
Driver\setup\hot98" stunt.exe 

PowerShell

#mounts the image 
Mount-DiskImage -ImagePath "C:\Users\Allen\Documents\Games\Hot Wheels Stunt 
Track Driver\setup\hot98\HotwheelsStuntTrack.iso" 

ответ

2

этот фрагмент будет только смонтировать образ, если он не установлен:

if(!(get-DiskImage -ImagePath C:\testshare\97001.ISO).Attached){ 
Mount-DiskImage -ImagePath C:\testshare\97001.ISO 
} 
0

В дополнение ответ Абайджит, и в частности, упомянуть одну ошибку, я должен был бороться ранее:

$imagePath = "the path to your .ISO file" 

$mount = Mount-DiskImage -ImagePath $imagePath -PassThru 
$driveLetter = ($mount | Get-Volume).DriveLetter 
$drive = $driveLetter + ":\" 

# PowerShell bug workaround 
# Forces PowerShell to update drive info for its providers 
# Not doing so makes Test-Path fail on freshly mounted drives 

Get-PSDrive > $null 

$setupPath = $drive + "the path to your exe on the mounted drive" 
$setupArgs = "your .exe args" 

if (!(Test-Path $setupPath)) { 
    # ... Something went wrong ... 
} else { 
    $process = Start-Process $setupPath -ArgumentList $setupArgs -Wait -PassThru 
    # You can check $process.ExitCode here  
}