Windowsのpowershellでは、私は文字列にmoveコマンドを格納して、それを実行しようとしています。誰かがなぜこれがうまくいかないのか教えてもらえますか?PowerShellの文字列の引数を使用してコマンドレットを実行できないのはなぜですか?
PS C:\Temp\> dir
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/14/2009 8:05 PM 2596 sa.csproj
-a--- 8/15/2009 10:42 AM 0 test.ps1
PS C:\Temp> $str = "mv sa.csproj sb.csproj"
PS C:\Temp> &$str
The term 'mv sa.csproj sb.csproj' is not recognized as a cmdlet, function, operable program, or script file. Verify the
term and try again.
At line:1 char:2
+ &$ <<<< str
PS C:\Temp>
引数を含むコマンドを格納するときにこのエラーが発生します。この制限をどのように克服できますか?ヘルプ(about_Operators)から
おかげでしょうか? –
'&'は、ヘルプ状態と同様に、単一のコマンド、スクリプト、スクリプトブロックを実行するためのものです。これは構文解析を行わないので、呼び出し可能なコマンドとみなされる単一の引数のみを受け入れます。パラメータを追加する場合は、スクリプトまたはスクリプトブロックで呼び出しをラップするか、 'Invoke-Expression'を使用します。 powershellに 'help about_operators'と入力すると、演算子を説明するヘルプページが表示されます。 – Joey