コマンド出力のリダイレクト:
例えば:
echo "Foo `./print_5_As.rb`"
「Foo AAAAA」とエコーします
PowerShell構文はPOSIXksh構文に基づいているため(興味深いことに、CMD.EXE、VBScript、Visual Basic for ApplicationsなどのMicrosoftの言語には基づいていません)、多くの機能がBashとほぼ同じように機能します。あなたの場合、コマンド置換はで行われます
echo "Foo $(./print_5_As.rb)"
PowerShellとBashの両方で。
Bashは引き続き古い方法(バッククォート)をサポートしていますが、PowerShellは構文をクリーンアップし、2つの異なるコマンド置換構文などの冗長な構造を削除しました。これにより、PowerShellでの別の 使用のためにバックティックが解放されます。POSIXkshでは、バックスラッシュがエスケープ文字として使用されますが、バックスラッシュはWindowsの従来のパスコンポーネント区切り文字であるため、PowerShellでは非常に苦痛になります。そのため、PowerShellは(現在は使用されていない)バックティックを使用してエスケープします。
PowerShell では、 $( ) を使用して部分式を評価します...
例えば:
PS C:\> "Foo $(./print_5_As.rb)"
Foo AAAAA
CMD.EXE には、直接同等のものはありません。しかし、FOR コマンドを使用して目的を達成することができます。
次のようにします。
FOR /F "usebackq" %x IN (`./print_5_As.rb`) DO @echo Foo %x
また
FOR /F %x IN ('"./print_5_As.rb"') DO @echo Foo %x
出力の外観や使用方法によっては、delimiter をデフォルト以外に設定する必要がある場合があります。詳細については、https://technet.microsoft.com/en-us/library/bb490909.aspxの FOR ドキュメントを参照してください。