2016-03-29 5 views
1

Ich habe 2 Skripte zum Imaging neuer PCs. 1, wenn der PC eine CD-ROM und eine für hat, wenn dies nicht der Fall:Disk Part Wenn auf Volume-Nummer oder Laufwerkstyp basiert?

Mit CD-ROM:

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

Ohne CD-Rom:

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

Ich bin auf der Suche nach einem Weg, Um diese zu einem Skript zu kombinieren, das im Grunde entscheidet, ob Volume 0 eine Festplatte oder eine CD-ROM ist, führen Sie dann das eine oder andere Skript basierend auf einer YES-Festplatte oder einer YES-CD-ROM aus.

Ich bin mir nicht sicher, ob dies besser mit Powershell getan wird oder ob eine If-Anweisung in einem Diskpart-Skript arbeiten kann oder ob all dies mit einer einfachen CMD-Batch-Datei erledigt werden kann.

+0

Sie könnten den Befehl 'wmic' interessieren; zum Beispiel: 'wmic VOLUME GET DriveLetter, DriveType' – aschipfl

+0

Ich würde PowerShell empfehlen. 'diskpart' akzeptiert Eingaben von STDIN, so dass Sie das' diskpart'-Skript als mehrzeilige Zeichenfolge oder als Zeichenfolgenarray definieren und in den Befehl pipettieren können. Verwenden Sie 'Get-WmiObject', um zu prüfen, ob ein CD/DVD-Laufwerk vorhanden ist oder nicht. –

Antwort

1

Ich weiß nicht, wie ein "Diskpart-Skript" aussieht, aber Sie können einen Dateinamen für die Ausgabe auswählen, indem Sie die Scriptname-Variable oben in diesem Skript ändern, die in Ihrer Datenträgerinfo nach "CD-ROM" sucht (wmic Befehl wie @ aschipfl erwähnt) und geben Sie den einen oder anderen Block von Befehlen aus, die Sie oben referenziert haben. Es könnte auch diesen Befehl für Sie am Ende ausführen.

@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 wählt automatisch erstellte Partition und korrespondierte Volumen. So dass select volume überhaupt nicht notwendig ist. Einfach entfernen.