4

gcc 変数を設定する簡単なスクリプトを作成しようとしています。.bat ファイルとして。

変数はこのように設定されています

$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin"

パワーシェルに入力/貼り付けすると、これは問題なく実行されます。

しかし、スクリプト myscript.bat に貼り付けて、powershell で実行すると、次のエラーが発生します。

C:\Users\Brett\Compilers>"$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin""
The filename, directory name, or volume label syntax is incorrect.
PS C:\Users\Scruffy\Compilers>
4

3 に答える 3

5

PowerShell は、Windows コマンド ライン (cmd.exe) とは別の実行環境です。

バッチ ファイルから powershell コマンドを実行する場合は、powershell スクリプト (.ps1) を保存し、それをコマンド ライン引数として powershell.exe に渡す必要があります。

例:

powershell.exe -noexit c:\scripts\test.ps1

詳細については、Microsoft TechNet を参照してください。

于 2012-10-01T01:28:23.040 に答える
1

一般に、バッチは .BAT ファイルに残し、PowerShell は .ps1 ファイルに入れます。

ここで結果を複製できますが、それらは予想されるものです。Cmd.exe は文字列とパスを認識し、構文がコマンド プロンプトで処理できるものではないため、かなり混乱します。したがって、そのエラーメッセージが表示されます。

パスに何かを追加したい場合は、ステートメントを .ps1 スクリプト ファイルに入れてみませんか?

于 2012-10-01T10:07:05.120 に答える
0

他の人が述べたように、コードを .bat ではなく .ps1 ファイルに保存する必要があります。

この行 ( Setting Windows PowerShell path variableから) でうまくいきます。

$env:Path = $env:Path + ";C:\Users\Brett\Compilers\MinGW\bin"

またはさらに短い:

$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin" 
于 2012-10-01T10:25:41.367 に答える