Windows Azureロールで起動タスクcmd-scriptを実行しようとしています。Azure WorkerRoleでPowerShellコマンドを実行中にエラーが発生しました。
powershell $command = "set-executionpolicy Unrestricted"
powershell $command = ".\setupAgent.ps1" -NonInteractive >; out.txt
は今、私は、コマンドシェルからのエラーメッセージを取得している問題は、こう述べています:
これは、コマンドファイルのスクリプトの2行です
それがどのように見えるD:\Users\UserAccount>∩╗┐powershell $command = "set-executionpolicy Unrestricted"
'powershell' is not recognized as an internal or external command,
operable program or batch file.
これらの特別な文字は私のcmdファイルにはないので、いくつかの種類の異なるコードページやlinkeが使用されています。 cmd-fileは、VS 2012 Ultimate経由でWindows 8上に作成されました。
コマンドの冒頭に特別な文字が表示されないようにするにはどうすればよいですか? cmd-fileからリモートデスクトップ経由でコンソールにコマンドをコピーすると、正常に動作します。
ありがとう、それが解決策でした! – sebastian87
+1。このエンコーディングがなぜ必要なのかを詳しく説明できますか? –
Visual Studioでは、デフォルトでBOM付きのUTF-8でファイルを保存します(バイトオーダーマーク - ファイルの最初のバイト)。 Windowsを含むOSは、 'script'ファイルを実行する際にこれを認識しません。これにより、BOM付きUTF-8で保存されたスクリプトファイルがすべて失敗します。一般的な経験則は、OSによって実行されるスクリプトファイル(DOSバッチファイル、PSファイル、BASCHスクリプト、Peral、PHPなど)であり、ネイティブのASCIIエンコーディングを持ちます。 – astaykov