次の方法で共有


Convert-String

例に一致するように文字列を書式設定します。

構文

Convert-String
       [-Example <System.Collections.Generic.List`1[System.Management.Automation.PSObject]>]
       -InputObject <String>
       [<CommonParameters>]

説明

Convert-String コマンドレットは、例の形式に一致するように文字列を書式設定します。

例 1: 文字列の形式を変換する

"Mu Han", "Jim Hance", "David Ahs", "Kim Akers" | Convert-String -Example "Ed Wilson=Wilson, E."

Han, M.
Hance, J.
Ahs, D.
Akers, K.

最初のコマンドは、姓と名を含む配列を作成します。

2 番目のコマンドは、例に従って名前の書式を設定します。 出力の先頭に姓を置き、その後にイニシャルを入力します。

例 2: 文字列の書式を簡略化する

$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=last, first"

Bach, Johann
Mozart, Wolfgang
Chopin, Frederic
Brahms, Johannes

最初のコマンドは、名、中、姓を含む配列を作成します。 最後のエントリにはミドル ネームがないことに注意してください。

2 番目のコマンドは、例に従って名前の書式を設定します。 出力の先頭に姓を付け、その後に名を付けます。 すべてのミドル ネームが削除されました。ミドル ネームのないエントリが正しく処理されます。

例 3: 文字列が一致しない場合の出力管理の例

$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=middle, first"

Sebastian, Johann
Amadeus, Wolfgang
Francois, Frederic

最初のコマンドは、名、中、姓を含む配列を作成します。 最後のエントリにはミドル ネームがないことに注意してください。

2 番目のコマンドは、例に従って名前の書式を設定します。 出力の先頭に のミドル ネーム、その後に名を付けます。 $Composersの最後のエントリは、サンプルパターンと一致しないため、スキップされます。つまり、ミドルネームはありません。

例 4: 美容空間に注意する

$composers = @("Antonio Vivaldi", "Richard Wagner ", "Franz Schubert", "Johannes Brahms ")
$composers | Convert-String -Example "Patti Fuller = Fuller, P."

Wagner, R.
 Brahms, J.

最初のコマンドは、姓と名の配列を作成します。 2 番目と 4 番目の項目には、姓の後に余分な末尾のスペースがあることに注意してください。

2 番目のコマンドは、サンプル パターンに一致するすべての文字列 ( 単語、スペース、単語、および最後の末尾のスペース) を変換します。これらはすべて等号の前にあります。 また、出力の先頭のスペースにも注意してください。

例 5: 複数のパターンでプロセス情報を書式設定する

$ExamplePatterns = @(
    @{before='"Hello","World"'; after='World: Hello'},
    @{before='"Hello","1"'; after='1: Hello'},
    @{before='"Hello-World","22"'; after='22: Hello-World'},
    @{before='"hello world","333"'; after='333: hello world'}
)
$Processes = Get-Process   | Select-Object -Property ProcessName, Id | ConvertTo-Csv -NoTypeInformation
$Processes | Convert-String -Example $ExamplePatterns

Id: ProcessName
4368: AGSService
8896: Amazon Music Helper
4420: AppleMobileDeviceService
...
11140: git-bash
0: Idle
...
56: Secure System
...
13028: WmiPrvSE
2724: WUDFHost
2980: WUDFHost
3348: WUDFHost

$ExamplePatterns では、例を使用して、データ内のさまざまな予期されるパターンを定義します。

最初のパターン@{before='"Hello","World"'; after='World: Hello'}、次のように読みます: 単語が二重引用符で囲まれ、次にコンマ、そして 2 番目で最後の単語が引用符で囲まれた文字列を期待します。文字列にスペースはありません。出力上:引用符なしで2番目の単語を最初に配置し、次にスペースを1つ配置し、次に引用符なしで最初の単語を配置します。

2 番目のパターン @{before='"Hello","1"'; after='1: Hello'} は、次のように読みます: 単語が二重引用符で囲まれ、次にコンマ次に引用符で囲まれた数字が来る文字列を期待します。文字列にスペースはありません。出力上:最初に引用符なしで数字を配置し、次に1つのスペース、次に引用符なしで単語を配置します。

3 番目のパターン @{before='"Hello-World","22"'; after='22: Hello-World'} は、次のように読みます: 文字列を期待します。間にハイフンがある 2 つの単語二重引用符で囲まれ、次にコンマ、次に引用符で囲まれた数字が来るとします。コンマと 3 番目の二重引用符の間にスペースはありません。出力上:最初に数字を引用符なしで配置し、次に1つのスペース次にハイフンでつながれた単語を引用符なしで配置します。

4 番目で最後のパターン @{before='"hello world","333"'; after='333: hello world'} は、次のように読みます: スペースを挟んだ 2 つの単語二重引用符で囲まれ、次にコンマ、次に引用符で囲まれた数字が続く文字列を期待してください。コンマと 3 番目の二重引用符の間にスペースはありません。出力上:最初に数字を引用符なしで配置し、次に1つのスペースを配置し、次に引用符なしでスペースを挟んだ単語を配置します。

最初のコマンドは、Get-Process コマンドレットを使用してすべてのプロセスを取得します。 このコマンドは、プロセス名とプロセス ID を選択する Select-Object コマンドレットに渡します。 パイプラインの最後で、コマンドは、ConvertTo-Csv コマンドレットを使用して、型情報を含まないコンマ区切りの値に出力を変換します。 このコマンドは、結果を $Processes 変数に格納します。 $Processes にプロセス名と PID が含まれるようになりました。

2 番目のコマンドは、入力項目の順序を変更する変数の例を指定します。 このコマンドは、 $Processes 内の各文字列を変換します。

手記 4 番目のパターンは、スペースで区切られた 2 つ以上の単語が一致することを暗黙的に示しています。

4 番目のパターンがないと、二重引用符で囲まれた文字列の最初の単語のみが照合されます。

パラメーター

-Example

ターゲット形式の例の一覧を指定します。 次の例のように、等号 (=) で区切られたペアを指定し、ソース・パターンを左側に、ターゲット・パターンを右側に指定します。

  • -Example "Hello World=World, Hello"
  • -Example "Hello World=World: Hello",'"Hello","1"=1: Hello'

手記 2 番目の例では、パターンのリストを使用します

または、Before プロパティと After プロパティを含むハッシュ テーブルの一覧を指定します。

  • -Example @{before='"Hello","World"'; after='World: Hello'}, @{before='"Hello","1"'; after='1: Hello'}

注意 等号を囲むスペースは、パターンの一部として扱われるため、使用しないでください。

型:List<T>[PSObject]
Aliases:E
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

書式設定する文字列を指定します。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

入力

String

このコマンドレットに文字列をパイプできます。

出力

String

このコマンドレットは文字列を返します。