2

これを行うためのより良い方法が必要ですか?

$strOutput = "800x600, 32 bits @ 60 Hz."

      # Initial split
$aSplitString = $strOutput.Split(",")


# Get Horizontal and Vertical Length
$aSplitString2 = $aSplitString[0].Split("x")
$strHorizontal = $aSplitString2[0]
$strVertical = $aSplitString2[1]
$aSplitString2 = $null

#Get Color Depth and Frequency
$aSplitString2 = $aSplitString[1].Split(" ")
$strColour = $aSplitString2[1]
$strFrequency = $aSplitString2[4]

1 つの文字列で非常に多くの分割関数を使用するのは好きではありません。他に何ができますか?

上記の例では、個々の解像度サイズ、色深度、頻度を on 変数に取得しようとしています。

水平 = 800 垂直 = 600 色 = 32 頻度 = 60

4

2 に答える 2

6

文字の配列を split 関数に渡すことができることがわかりました。
したがって、1行で:

PS C:\Windows\system32> "800x600, 32 bits @ 60 Hz.".split(@("x",","," "))
800
600

32
bits
@
60
Hz.
于 2012-11-22T20:27:41.180 に答える
2

1つの方法は次のとおりです。

$strOutput = "800x600, 32 bits @ 60 Hz."
$splitted = $strOutput -replace '\D',' ' -split '\s+'
$strHorizontal = $splitted[0] 
$strVertical = $Splitted[1]
$strColour = $splitted[2]
$strFrequency = $splitted[3]
于 2012-11-22T20:28:09.230 に答える