2016-03-29 32 views
1

我有2個腳本成像的新電腦。 1,如果電腦有一個CD-ROM和一個如果沒有:磁盤部分如果根據卷號或驅動器類型?

隨着光盤:

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,然後執行一個或其他腳本根據是HDD或YES的CD-ROM以上。

我不知道這是更好的使用PowerShell或者如果if語句可以被加工成Diskpart的腳本或做,如果所有這一切都可以用一個簡單的CMD批處理文件來完成。

+0

你可能會感興趣的'wmic'命令;例如:'wmic VOLUME GET DriveLetter,DriveType' – aschipfl

+0

我推薦使用PowerShell。 'diskpart'接受輸入從STDIN,所以可以定義'diskpart'腳本作爲多行字符串或字符串數​​組和管道入命令。使用'Get-WmiObject'來檢查CD/DVD驅動器是否存在。 –

回答

1

我不知道「Diskpart腳本」是什麼樣子,但您可以通過修改腳本頂部的scriptname變量來選擇文件名作爲輸出,該腳本將在您的磁盤信息中查找「CD-ROM」 (像@aschipfl提到的wmic命令)並輸出上面提到的一個或其他命令塊。它也可以在最後爲你運行這個命令。

@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%" 
1

create partition自動選擇創建的分區和對應的卷。因此,select volume根本就沒有必要。只要刪除它。

相關問題