In Windows PowerShell, sto tentando di memorizzare un comando di spostamento in una stringa e quindi eseguirlo. Qualcuno può dirmi perché questo non funziona?Perché non posso eseguire un comando con argomenti da una stringa in 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>
Viene visualizzato questo errore quando si memorizza un comando con argomenti. Come posso superare questa limitazione?
Grazie, pensi che si può spiegare (o link) una spiegazione di ciò che il carattere & fa? –
'&' è per l'esecuzione di un singolo comando, script o scriptblock, proprio come gli stati della guida. Non esegue alcun parsing quindi accetta solo un singolo argomento che quindi si presume sia un comando invokable. Se si desidera aggiungere parametri, quindi eseguire il wrapping della chiamata in uno script o un blocco di script o utilizzare 'Invoke-Expression'. Puoi trovare la pagina di aiuto che descrive gli operatori digitando 'help about_operators' in Powershell. – Joey