在 Windows 8 中加载和卸载 ISO 文件

在 Windows 8 中加载和卸载 ISO 文件

我在一个网站上看到,新的 Windows 8 无需其他程序的帮助就可以加载 ISO 映像。

  1. Windows 8 会为每个 ISO 创建新的驱动器吗?还是会有一个虚拟驱动器来加载所有 ISO?

  2. 我如何知道一个文件是否真的是 ISO?

  3. 有些 PC 使用 UltraISO 打开 ISO。如果我在 DOS 中输入 ISO 名称,它会在 UltraISO 中加载。我怎样才能在所有 PC 上仅在 Windows 8 中加载 ISO,无论它们是否具有 UltraISO?

  4. 我该如何卸载 ISO?

我想在批处理文件中完成所有这些操作。

答案1

Windows 8 会为每个 ISO 创建新的驱动器吗?还是会有一个虚拟驱动器来加载所有 ISO?

其他人已经回答了这个问题 - Windows 将创建一个新的虚拟驱动器来加载您打开的每个 ISO同时地。这意味着,您加载的第二个 ISO(不弹出第一个 ISO)将不是替换已加载的驱动器号,但会被分配不同的驱动器号。


有些 PC 使用 UltraISO 打开 ISO。如果我在 DOS 中输入 ISO 名称,它会在 UltraISO 中加载。我怎样才能在所有 PC 上仅在 Windows 8 中加载 ISO,无论它们是否具有 UltraISO?

有趣的问题。我实际上尝试explorer.exe Filename.iso安装了不同的 ISO 处理程序/查看器/编辑器,发现根据与操作系统的集成程度,该命令要么绕过相关程序,要么不绕过。我仍在寻找一种可靠地打开 ISO 的方法总是使用 Windows 本身,而不考虑是否安装了任何相关程序。如果我弄清楚了,一定会更新我的答案。


我该如何卸载 ISO?

仍然需要弄清楚这一点;可能会与上面提到的弄清楚可靠的加载命令一起发生。

同时,您可以尝试以下方法之一:

尼尔基姆cdrom 打开 [驱动器:]

或者

威兹莫打开=[驱动器:]


我如何知道一个文件是否真的是 ISO?

我最后才谈到这一点,因为从技术上讲,这是最难实现的。可靠地识别一个命名错误的磁盘映像(或任何文件)是否实际上是否使用 ISO 出乎意料地困难。我能想到的最接近的方法是使用TrID 文件标识符。如果您下载了 Win32 版本和最新的 TrIDDefs 包,请将它们解压到同一文件夹并运行以下命令:

trid -ns -r:1 File.iso

你将看到如下输出:

TrID/32 - File Identifier v2.10 - (C) 2003-11 By M.Pontello
Definitions found:  4903
Analyzing...

Collecting data from file: File.iso
 49.4% (.NRG) Nero BurningROM CDImage (2048000/1)

不幸的是,似乎出于某种原因,ISO 要么被 TrID 识别为“空字节”(如果删除开关-ns),要么被识别为“Nero BurningROM CDImage”(如果指定开关)。我不知道前者,但后者可能是因为 NRG 光盘映像与 ISO 非常相似。如果是这样,区分命名不当的 NRG 和真正的 ISO 将会很困难(甚至不可能)(尽管如果 Windows 8 可以加载重命名为 ISO 的 NRG,那就无关紧要了)。无论如何,以下批处理文件将打印出指定为参数的文件是否是 NRG/ISO:

@echo off
if [%1]==[] goto :EOF
for /f %%v in ('trid -ns -r:1 "%1" ^| find /c "(.NRG)"') do (
    if [%%v]==[0] echo "%1" is not an NRG/ISO & goto :EOF
    echo "%1" is an NRG/ISO
)

交替,你可以从相反的方向看待这个问题。由于 Windows 8 只能加载 ISO 和 VHD,因此可以合理地假设任何文件不是加载的 ISO 不符合要求。因此,您可以尝试加载假定的 ISO(当然,该命令仍待处理),然后在所有磁盘驱动器中搜索已知文件(实际虚拟的,因为我不知道如何区分两者)。假设在同一时间插入的真实光盘上不存在同名文件,如果文件搜索成功,则可以断定 ISO 已成功加载,因此是真正的 ISO 或名称错误的 VHD。可以在我的回答中找到搜索所有磁盘驱动器以查找特定文件的代码这里。(呼,希望这有意义!)


最后,我想说的是,由于 Windows 8 中可能存在用于加载/弹出 ISO 的新 API,并且这些 API 可能通过 .NET/PowerShell 公开,因此通过 PowerShell 完成所有操作可能更容易。我无法帮助您,因为我不是 PS 专家,但如果使用批处理文件不是绝对必要的,您绝对应该研究一下。

答案2

Windows 8 会为每个 ISO 创建新的驱动器吗?还是会有一个假驱动器来加载所有 ISO?

是的,Windows 8 将为每个 ISO 文件创建一个虚拟驱动器,但前提是您尝试同时打开多个 ISO 文件。

在此处输入图片描述

我如何知道文件里面是否真的是 ISO?

只需右键单击图像并选择属性,您就会看到文件类型。或者它在 Windows 8 中有一个默认图标。

在此处输入图片描述

有些 PC 使用 UltraISO 打开 ISO。如果我在 DOS 中输入 ISO 名称,它会在 UltraISO 中加载。我怎样才能在所有 PC 上仅在 Windows 8 中加载 ISO,无论它们是否具有 UltraISO?

是的,你可以使用打开用选项或将默认程序设置为它。

在此处输入图片描述

我该如何卸载 ISO?

只需右键单击它并选择选项喷射

在此处输入图片描述

编辑:您可以ISO通过命令行运行该程序,只需输入以下命令即可

 C:\>explorer.exe D:\DiskImage\imagefile.iso

笔记:这D:\diskimage\imagefile.iso是文件的路径,ISO您必须用您的路径更改它。

现在您将看到现在ISO图像已安装在其中,您可以在“我的电脑”部分下看到它。如果您想要同时 explorer使用多个,那么您可以使用所需的图像文件名运行相同的命令来打开它。ISO

现在,如果您想ISO从命令行卸载图像,请键入以下命令并点击Enter

c:\>powershell dismount-diskimage -devicepath \\.\D:

这里D:指的是您的虚拟驱动器的驱动器号,它可能根据您的分区号而有所不同。

再编辑一次: 在谷歌上搜索了一下之后,我在 SU 上找到了@r.tanner.f找到了通过 power-shell 安装多个 ISO 的方法。他在阅读此帖子后解决了这个问题。

答案3

Windows 8 会为每个 ISO 创建新的驱动器吗?还是会有一个假驱动器来加载所有 ISO?

当您首次使用 Windows 资源管理器打开 ISO 时,它会自动为其创建一个新的虚拟驱动器(“安装”它)。如果您打开多个 ISO,您将拥有多个虚拟驱动器。

我如何知道文件里面是否真的是 ISO?

我不确定我是否明白。它显示为虚拟 CD/DVD 驱动器。我想您可以检查驱动器的属性以了解所使用的文件系统。

有些 PC 使用 UltraISO 打开 ISO。如果我在 DOS 中输入 ISO 名称,它会在 UltraISO 中加载。我怎样才能在所有 PC 上仅在 Windows 8 中加载 ISO,无论它们是否具有 UltraISO?

您可以explorer YourISOName.iso从命令提示符运行以在 Windows 资源管理器中打开 ISO。如果尚未安装,则会安装,然后您将在资源管理器中进入该位置。

我该如何卸载 ISO?

在资源管理器中,您可以右键单击并“弹出”它们,就像 Windows 中的任何其他外部驱动器类型一样。

答案4

事实证明,这就是您可以让 Windows/explorer 本地挂载/卸载 iso 映像而不管内容类型关联的方式。

挂载图像:

$ powershell Mount-DiskImage -ImagePath d:\path\to\image.iso

如果您愿意,可以卸载或解除挂载:

$ powershell DisMount-DiskImage -ImagePath d:\path\to\image.iso 

好开心!

相关内容