2017-05-10 6 views
1

誰でも以下の変数は、PowerShellでのために使用されているものを知っています:?

  • ${$}
  • ${^}
  • 私はあなたが彼らが関係ISE経由スクリプトとしてこれらを実行している場合、両方が(最後に実行したコマンドラインに関連${^}${$}を伝えることができるものから、$?

同じスクリプト内の前の行ではなく、スクリプトが実行される前に実行されたコマンドまで)。違いは、$ {^}が最初の空白文字までコマンドを返し、$ {$}が最後の空白文字の後ろのすべてを返すということです。すなわち

  • $chevron = $lastCommand -replace '^([^\s]*).*$', '$1'
  • $dollar = $lastCommand -replace '^.*?([^\s]*)$', '$1'

$?その間常にtrueを返すように思えます。

これらの変数は、ISEのオートコンプリート機能で検出されたときに検出されました。

これは文書化されていると確信していますが、私は答えを見つけるために適切な検索語句を見つけるのに苦労しています。

+0

私は、同様に、Googleにこれは難しい見つけましたが、また$について質問する最初ではなかったですか? http://stackoverflow.com/q/32120202/2796058 –

+0

自動変数について:https://technet.microsoft.com/en-us/library/hh847768.aspxは、これらの公式ドキュメントです。 –

答えて

1

の場合:

$?最後の操作の実行ステータスが含まれます。 CMDシェルの%errorlevel%に相当します。以下の$ LastExitCodeも参照してください。 最後の操作が成功した場合はTRUEを返し、失敗した場合はFALSEを返します。 ReadOnly、AllScope (https://ss64.com/ps/syntax-automatic-variables.html

その他の情報も記載されています。

3

文字の代わりに文字で名前を変えることで、文字自体が機能しました!

http://www.neolisk.com/techblog/powershell-specialcharactersandtokens

${^}$^を書き込むことができます。これは最後のコマンドの最初のトークンを与える。これは私が質問したことに似ていますが、トークンには空白が含まれるだけです。むしろ、解析されたコードに基づいて分割されます。例:'number 1', 'number 2' | Write-Host'numberの代わりにnumber 1を返します。

${$}/$$も最後のトークンを返します。すなわち、write-host -ForegroundColor green -Object 'hello, is it me you''re looking for?'を実行した後、$$hello, is it me you're looking for?となる。

$?は、前のコマンドが成功した場合にtrueを返します。どこが偽であるかを示すために、1/0を実行してから$?を実行すると、誤った結果が得られます。

1

$$

は現在 セッションで受信された最後の行の最後のトークンが含まれています。

$?

最後の操作の実行ステータスが含まれます。最後の操作が成功した場合はTRUE 、失敗した場合はFALSEを含みます。

$^

セッションで受信した最後の行の最初のトークンが含まれています。