Comma ist ein Array-Operator in PowerShell. Also dein Befehl:
wmic desktopmonitor get screenwidth, screenheight
haben folgende Bedeutung: Aufruf wmic
mit drei Argumenten: String desktopmonitor
, String get
und Array mit zwei Strings screenwidth
und screenheight
. Da wmic
es sich um eine native Anwendung handelt, muss PowerShell Argumente in eine Befehlszeile umwandeln. PowerShell verwendet Leerzeichen als Trennzeichen, wenn Sie ein Array in eine Befehlszeile umwandeln. Die folgende Befehlszeile wäre also:
wmic desktopmonitor get screenwidth screenheight
Sie können das sehen, indem Sie folgenden Befehl eingeben:
cmd /c echo wmic desktopmonitor get screenwidth, screenheight
Ab PowerShell v5 gibt es hier einen Sonderfall. Wenn das Array direkt bereitgestellt wird (nicht als Unterausdruck) und keine Leerzeichen zwischen Kommas und Array-Elementen vorhanden sind, verwendet PowerShell das Komma als Trennzeichen, wenn Arrays in die Befehlszeile umgewandelt werden.
PS> cmd /c echo 1,2,3 (4,5,6) 7,8 ,9 1,2,3 4 5 6 7 8 9
Dieser Befehl:
wmic desktopmonitor get screenwidth,screenheight
qualifizieren Sie sich für diesen Sonderfall, und die folgende Befehlszeile würde lauten:
wmic desktopmonitor get screenwidth,screenheight