从 CD/DVD 驱动器创建 ISO 的 Bat 脚本

Bat script which creates ISO from a CD/DVD drive

堆栈社区美好的一天!预先感谢您的宝贵时间

我想创建一个 bat 文件以便从 DVD 驱动器自动创建一个 iso 文件。所以逻辑将是:

  1. 找出哪个是 CD/DVD 驱动器(从许多驱动器中)

  2. 并将该结果用作变量(驱动器的:例如 F:),它将在以下命令中执行:

    cdbxpcmd.exe --burn-data -folder:F:\ -iso:C:\donalds.iso -format:iso

所以在前面的命令中,F:\ 将是变量,假设 %input%:\ 程序 cdbxpcmd 将使用它来从该驱动器创建 iso。

我找到了以下用于查找驱动器盘符的脚本, 来自这里:https://itectec.com/superuser/windows-how-to-detect-dvd-drive-letter-via-batch-file-in-ms-windows-7/

@echo off
setlocal
for /f "skip=1 tokens=1,2" %%i in ('wmic logicaldisk get caption^, drivetype') do (
  if [%%j]==[5] echo %%i
  )
endlocal

你相信我们可以将它们结合起来吗?如何?有什么建议吗?

您可以使用 cdbxpcmd.exe 本身来定位您的驱动器:

两行示例:

@Set "CDBXP=C:\Program Files\CDBurnerXP\cdbxpcmd.exe"
@For /F "Tokens=2 Delims=()" %%G In ('^""%CDBXP%" --list-drives^"') Do @"%CDBXP%" --burn-data -folder:%%G -iso:"C:\donalds.iso" -format:iso

只需在 = 和结束 "1 之间更改 cdbxpcmd.exe 命令行实用程序所在的位置。


或者,您仍然可以使用 WMI,但就我个人而言,我不会使用 Win32_LogicalDisk,而是使用 Win32_CDROMDrive,它可以验证 CDROM 磁盘是否已加载,并且包含可读数据。

单行示例:

@For /F Tokens^=6^ Delims^=^" %%G In ('%SystemRoot%\System32\wbem\WMIC.exe Path Win32_CDROMDrive Where "MediaLoaded='True' And DriveIntegrity='True'" Get Drive /Format:MOF 2^>NUL') Do @"C:\Program Files\CDBurnerXP\cdbxpcmd.exe" --burn-data -folder:%%G\ -iso:"C:\donalds.iso" -format:iso

只需更改您的 cdbxpcmd.exe 命令行实用程序所在的位置,记住保留双引号以获得最佳实践。