En Windows PowerShell, intento almacenar un comando de movimiento en una cadena y luego ejecutarlo. ¿Puede alguien decirme por qué esto no funciona?¿Por qué no puedo ejecutar un comando con argumentos de una cadena en 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>
Aparece este error al almacenar cualquier comando con argumentos. ¿Cómo supero esta limitación?
Gracias, ¿cree que se puede explicar (o enlace a) una explicación de lo que el personaje hace y? –
'&' es para ejecutar un solo comando, script o scriptblock, al igual que los estados de ayuda. No hace ningún análisis sintáctico, por lo que solo acepta un único argumento que luego se supone que es un comando invocable. Si desea agregar parámetros, envuelva la llamada en un script o bloque de script o use 'Invoke-Expression'. Puede encontrar la página de ayuda que describe a los operadores escribiendo 'help about_operators' en Powershell. – Joey