In Windows Powershell, versuche ich einen Move-Befehl in einer Zeichenfolge speichern und dann ausführen. Kann mir jemand sagen, warum das nicht funktioniert?Warum kann ich ein Kommando mit Argumenten aus einer Zeichenfolge in Powershell ausführen?
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>
Ich bekomme diesen Fehler beim Speichern eines Befehls mit Argumenten. Wie überwinde ich diese Einschränkung?
Dank, denken Sie, Sie (oder einen Link zu) eine Erklärung, was das Zeichen & tut erklären kann? –
'&' dient zum Ausführen eines einzelnen Befehls, Skripts oder Skriptblocks, genau wie die Hilfezustände. Es analysiert nicht, sondern akzeptiert nur ein einzelnes Argument, von dem angenommen wird, dass es sich um einen aufrufbaren Befehl handelt. Wenn Sie Parameter hinzufügen möchten, dann wickeln Sie den Aufruf entweder in ein Skript oder einen Skriptblock ein oder verwenden Sie "Invoke-Expression". Sie finden die Hilfeseite, auf der die Operatoren beschrieben werden, indem Sie in Powershell "help about_operators" eingeben. – Joey