首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查.ISO是否已在powershell中挂载,如果没有,则挂载

检查.ISO是否已在powershell中挂载,如果没有,则挂载
EN

Stack Overflow用户
提问于 2017-02-17 14:14:45
回答 2查看 2.3K关注 0票数 3

我有一个ISO文件,它是我从一张旧游戏光盘上复制的。但是为了让我玩这个游戏,我必须安装ISO。我写了一个小的批处理文件,运行.ps1的PowerShell文件挂载的国际标准化组织,然后运行可执行文件,以启动游戏后,它已被挂载。我的问题是,如果我多次运行脚本,它将再次挂载ISO。

我想要检查ISO是否已附加,如果未附加,则挂载它,或者如果已附加,则运行EXE。

下面是我要挂载的ISO:

批处理。

代码语言:javascript
复制
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

代码语言:javascript
复制
#mounts the image
Mount-DiskImage -ImagePath "C:\Users\Allen\Documents\Games\Hot Wheels Stunt 
Track Driver\setup\hot98\HotwheelsStuntTrack.iso"
EN

回答 2

Stack Overflow用户

发布于 2017-02-17 14:35:41

此代码段仅在未挂载的情况下挂载映像:

代码语言:javascript
复制
if(!(get-DiskImage -ImagePath C:\testshare\97001.ISO).Attached){
Mount-DiskImage -ImagePath C:\testshare\97001.ISO
}
票数 4
EN

Stack Overflow用户

发布于 2017-02-17 14:50:42

为了补充Abhijith的回答,特别是提到我之前必须解决的一个bug:

代码语言:javascript
复制
$imagePath = "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    
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42290665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档