1

PowerShell 3 がインストールされており、Cygwin から PowerShell 2 を実行する必要があります

$ PowerShell -Version 2
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

C:\Users\Michael> $host.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
3      0      -1     -1

しかし、ご覧のとおり、まだ PowerShell 3 を実行しています。

私が間違っていることについて何か考えがありますか?

Cygwin から PowerShell を実行する必要がある理由に興味がある場合は、私が書いている git フックが原因です。サーバー側のフックを開発するために PowerShell スクリプトを作成しましたが、上記の問題により、ブレークポイントで私の素晴らしいトリックを使用できません。

UPD: Windows 8 で Cygwin 1.7.11 ターミナルを使用しています

UPD: 間に cmd を実行して、パラメーターが適切に渡されることを確認することもできます

$ cmd
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Users\Michael>PowerShell -Version 2
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

C:\Users\Michael> $host.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
3      0      -1     -1
4

2 に答える 2

0

たぶん、Cygwinは期待どおりにPowershell.exeにパラメーターを渡さないのでしょうか?Powershell.exeが呼び出されたコマンドラインを確認してください。そのためにWin32_ProcessWMIクラスを使用できます。他のPowershellインスタンスとの混同を避けるために、プロセスIDと親プロセスIDも取得してください。同じクエリを使用してCygwinのpidを取得するか、タスクマネージャーを使用します。そのようです、

gwmi win32_process -filter "Name = 'powershell.exe'" | select commandline, processid, parentprocessid | ft -AutoSize
于 2013-01-02T06:44:33.597 に答える