Comma é um operador de matriz no PowerShell. Então, seu comando:
wmic desktopmonitor get screenwidth, screenheight
tem o seguinte significado: invoke wmic
com três argumentos: string desktopmonitor
, string get
e array com duas strings screenwidth
e screenheight
. Como wmic
é um aplicativo nativo, o PowerShell precisa transformar argumentos em linha de comando. O PowerShell usa o espaço como separador ao transformar a matriz em linha de comando. Então, a linha de comando resultante seria a seguinte:
wmic desktopmonitor get screenwidth screenheight
Você pode ver isso digitando o seguinte comando:
cmd /c echo wmic desktopmonitor get screenwidth, screenheight
A partir do PowerShell v5, há um caso especial aqui. Se a matriz for fornecida diretamente (não como subexpressão) e não houver espaços entre vírgulas e elementos de matriz, o PowerShell usará a vírgula como separador ao transformar matrizes em linha de comando.
PS> cmd /c echo 1,2,3 (4,5,6) 7,8 ,9
1,2,3 4 5 6 7 8 9
Este comando:
wmic desktopmonitor get screenwidth,screenheight
qualifique-se para este caso especial e a linha de comando resultante seria:
wmic desktopmonitor get screenwidth,screenheight