タグ

ブックマーク / kawasaki-shingo-ps.blog.ss-blog.jp (2)

  • スクリプトファイルの場所:PowerShell log:So-net blog

    場所が知りたい PowerShell スクリプトの実行中に、そのファイルと同じフォルダに置かれた他のファイルにアクセスしたい場合があります。たとえば、スクリプトを複数ファイルに分割して記述していて、実行中に他のファイルをドットソーシングで読み込む場合です。もちろん他のファイルの場所を自由に配置可能として、起動パラメターでその場所を指定したりするような設計も可能ですが、その場合ですら初期値としてはすべての関連スクリプトファイルを同じフォルダに置くことにするのが便利でしょう。そのためには、スクリプト内で自ファイルの置かれている場所を取得する必要があります。 ここで必要となる、スクリプトの呼び出し関連の情報は自動変数 $myInvocation に格納されています。ただし呼び出し方とスクリプト内の位置に応じて格納されている情報の内容が変わるように見えて、最初は使い方がわかりにくかったので忘れない

  • キー入力でループ脱出:PowerShell log:So-net blog

    PowerShell で無限ループ内で何かを処理をし続け、キーボード入力でそれを中断させるようにしたいと思いました。キー入力を待ち受けるのではなくノンブロッキング動作のキー入力検出です。 "PowerShell in Action"の 11.2.3 でWebサーバーのリクエスト処理ループの例として次のようなどのキーを押しても中断できる例が載っています。(p.367) while($true) { if ($host.ui.rawui.KeyAvailable) { write-host "Stopping server..." break }普通はこれで用が足りるのです。しかし、リモート デスクトップ接続して使っている場合には、リモート デスクトップ画面を最小化したりすると、その時に送られてくる何かのイベントもここで検出されて、意図せず中断されてしまいます。 したがって、検出後にその内容を

  • 1