1

我有 2 个用于对新 PC 进行映像的脚本。如果 PC 有 CD ROM,则为 1,如果没有,则为 1:

带光盘:

    select disk 0
    clean
    create partition primary
    select volume 1
    assign letter="C"
    format quick fs=ntfs
    active
    exit

没有光盘:

select disk 0
clean
create partition primary
select volume 0
assign letter="C"
format quick fs=ntfs
active
exit

我正在寻找一种将这些组合成一个脚本的方法,该脚本基本上将决定卷 0 是硬盘驱动器还是 cd rom,然后根据 YES hdd 或 YES cd-rom 执行上面的一个或其他脚本。

我不确定使用 Powershell 是否可以更好地完成此操作,或者是否可以将 If 语句用于 Diskpart 脚本,或者是否所有这些都可以使用简单的 CMD 批处理文件来完成。

4

2 回答 2

1

create partition自动选择创建的分区和对应的卷。因此,select volume根本没有必要。只需将其删除。

于 2016-03-29T23:21:20.690 回答
1

我不知道“Diskpart 脚本”是什么样的,但您可以通过修改此脚本顶部的 scriptname 变量来选择输出文件名,该变量将在您的磁盘信息中查找“CD-ROM”(wmic 命令,如@aschipfl 提到)并输出您上面引用的一个或其他命令块。它还可以在最后为您运行该命令。

@ECHO OFF
set scriptname=yourscript.scr

REM Look for "CD-ROM" in disk information
wmic logicaldisk |findstr "CD-ROM" 1>nul
if ERRORLEVEL 1 (
REM If we did not find "CD-ROM", set volnum to 0
echo "no cd rom"
set volnum=0
) else (
REM If we found "CD-ROM", set volnum to 1
echo "has a cd rom"
set volnum=1
)

REM Write the script
 >"%scriptname%" echo.select disk 0
>>"%scriptname%" echo.clean
>>"%scriptname%" echo.create partition primary
>>"%scriptname%" echo.select volume %volnum%
>>"%scriptname%" echo.assign letter="C"
>>"%scriptname%" echo.format quick fs=ntfs
>>"%scriptname%" echo.active
>>"%scriptname%" echo.exit
REM run it by removing the 'REM' from the next line:
REM "%scriptname%"
于 2016-03-29T22:36:27.450 回答