chrisbutterfly
Goto Top

Diskpart in der schon geöffneten CMD per Batch ( .bat ) Programmierung automatisiert bedienen

Guten Tag,
während einer Installationsabfolge kann es schon mal sein, dass man nicht mehr den Buchstaben des Laufwerkes weiß oder andere Daten braucht, die man nicht im Kopf hat. Deshalb dachte ich mir, dass eine kleine Übersichtstabelle zwischendurch durchaus sinnvoll sein kann.

Für meine Lösung brauche ich eine *.bat Datei und in dem selben Ordner eine *.txt Datei. Die *.bat Datei muss als Administrator gestartet werden, damit der Diskpart in dem selben Fenster angezeigt wird. Die bekannten Befehle des Diskparts werden in die Textdatei geschrieben. Ganz wichtig ist zum Schluss das Exit, damit der Diskpart danach nicht die ganze Zeit mithört ;)

diskpart.txt
---------------------------------------------------------  
list volume
select disk 0
list par
exit
--------------------------------------------------------

Test.bat
----------------------------------------------------------------
@echo Diskpart wird’s gestartet
@echo %~d0
@echo %~dp0
call diskpart.exe /s %~dp0\diskpart.txt 
@echo diskpart ist beendet
pause
----------------------------------------------------------------

Viel Spaß damit, vielleicht kann es ja jemand gebrauchen.
Gruß,
Chris

Content-Key: 396966

Url: https://administrator.de/contentid/396966

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: Penny.Cilin
Penny.Cilin 30.12.2018 um 17:53:52 Uhr
Goto Top
Und ganz nebenbei der Editor des Forums unterstützt Codeblöcke.
Das ist das Symbol direkt über der Kamera links neben dem Editor.
Mitglied: 137846
137846 30.12.2018 aktualisiert um 19:40:01 Uhr
Goto Top
Die separate Textdatei kannst du dir sparen, und das elevated starten erzwingen ..
@echo off & setlocal
cls
:: Start elevated
net session >nul 2>&1 || (
  ECHO CreateObject^("Shell.Application"^).ShellExecute "%~0", "", "", "runas", 1 >"%temp%\runasadmin.vbs"  
  "%temp%\runasadmin.vbs"  
  exit /b
)
(
     echo list volume
     echo select disk 0
     echo list par
     echo exit
) | diskpart
Btw. Für eine "Anleitung" ist das aber sehr dürftig ... das fällt IMHO eher in die Kategorie "Tipp".
Mitglied: rubberman
rubberman 30.12.2018 um 21:45:10 Uhr
Goto Top
Zitat von @137846:
Die separate Textdatei kannst du dir sparen
Das separate VBScript auch irgendwie.
@if (@a)==(@b) @end /* :: Valid line in both Batch and JScript to begin a JScript multi-line comment.

@echo off &setlocal EnableExtensions DisableDelayedExpansion
>nul 2>&1 net session || (
  if "%~1"=="" cscript //nologo //e:jscript "%~fs0" "%~f0" 
  exit /b
)

(
  echo list volume
  echo select disk 0
  echo list par
  echo exit
) | diskpart

pause
exit /b

:: JScript:
*/ WScript.CreateObject('Shell.Application').ShellExecute('cmd.exe', '/c ""' + WScript.Arguments(0) + '""', '', 'runas', 1);  
Steffen
Mitglied: 137846
137846 30.12.2018 aktualisiert um 22:15:50 Uhr
Goto Top
Würde mir den Krampf sowieso gleich ersparen face-smile und mit wmic partition oder
https://docs.microsoft.com/en-us/powershell/module/storage/get-partition ...
arbeiten ...
Naja muss jeder selbst wissen. 1000 Wege nach Rom.