内の文字列内の変数を探す:私はこのようなサンプルコードてきたのPowerShell
[string] $Text = "This is a string text with some $($variable.Option) and $otherOption and that's it".
を今私が知りたいのですがどのようなそれは別に、標準の文字列と変数にその$Text
を分割することは可能でしょうか?この$Text
変数をメソッドに渡すと、別に$($variable.Option)
を抽出できますか?
私はそれが長いショットだと知っていますが、割り当て時にすぐに処理されていない可能性がありますか?
最終的な目標はカラフルPowerShellを作るためbetter version of method I wroteを作成することです:
function Write-Color([String[]]$Text, [ConsoleColor[]]$Color = "White", [int]$StartTab = 0, [int] $LinesBefore = 0,[int] $LinesAfter = 0) {
$DefaultColor = $Color[0]
if ($LinesBefore -ne 0) { for ($i = 0; $i -lt $LinesBefore; $i++) { Write-Host "`n" -NoNewline } } # Add empty line before
if ($StartTab -ne 0) { for ($i = 0; $i -lt $StartTab; $i++) { Write-Host "`t" -NoNewLine } } # Add TABS before text
if ($Color.Count -ge $Text.Count) {
for ($i = 0; $i -lt $Text.Length; $i++) { Write-Host $Text[$i] -ForegroundColor $Color[$i] -NoNewLine }
} else {
for ($i = 0; $i -lt $Color.Length ; $i++) { Write-Host $Text[$i] -ForegroundColor $Color[$i] -NoNewLine }
for ($i = $Color.Length; $i -lt $Text.Length; $i++) { Write-Host $Text[$i] -ForegroundColor $DefaultColor -NoNewLine }
}
Write-Host
if ($LinesAfter -ne 0) { for ($i = 0; $i -lt $LinesAfter; $i++) { Write-Host "`n" } } # Add empty line after
}
通常、私は
write-color -Text "[View][$($singleView.Title)]",
"[Row Limit: $($singleView.RowLimit)]",
"[Paged: $($singleView.Paged)]",
"[Default View: $($singleView.DefaultView)]",
"[Style ID: $($singleView.StyleID)]" -Color Yellow, Green, Red, Gray, Green
ような何かをすることによって色を割り当てることができます。しかし、これは「私は、全体の色を得ることを意味ライン"。
write-color -Text "[View: ", "$($singleView.Title)", "]",
"[Row Limit: ", "$($singleView.RowLimit)", "]" `
-Color Yellow, Green, Yellow, Yellow, Green, Yellow
それは悪くないです..しかし、これはAで行うことができる場合、私はちょうど考えた:私は1つの色と第2の色にある変数で、通常のテキストの色を取得したい場合、私はこのような何かをしなければならないでしょう単純なテキストが1つの色で、変数が2番目の場合はより良い方法です。私がさらに進んで、$ trueをGreenとFalseにしてRedで書いておきたいと思っていれば、何か解析が必要になります。
私はそうは思わない。私が知っている限り、文字列は処理され、すぐに解析され、すべての埋め込み変数が解決され、結果の文字列は '$ Text'に格納されます。 '$ Text'はそれを定義するための変数についての知識がありません。 –
具体的に何を実装したいのですか?これは私にとって非常に厄介です。 –
これはXY問題の場合、可能であればどのようにこの情報を使用するかの具体的な例があります(これはBaconビットが言ったことが原因ではありません)。オハイオ州.......あなたは遅れた文字列の拡張を要求しています..... – Matt