Dies ist ein unangenehmes Problem, mit dem ich konfrontiert bin. Wundern Sie sich nicht, wenn es eine einfache Lösung hat, nur dass es mir entgeht.
Ich habe 2 Batch-Dateien, die ich in Powershell-Skripts konvertieren muss.
file1.bat
---------
echo %1
echo %2
echo %3
file2.bat %*
file2.bat
--------
echo %1
echo %2
echo %3
auf der Kommandozeile, rufe ich dies als C:> file1.bat eins zwei drei Der Ausgang I zu sehen ist, wie ein zwei drei erwarteten ein zwei drei
(Dies ist ein grobes Codebeispiel)
Als ich in Powershell konvertieren, ich habe
file1.ps1
---------
Write-Host "args[0] " $args[0]
Write-Host "args[1] " $args[1]
Write-Host "args[2] " $args[2]
. ./file2.ps1 $args
file2.ps1
---------
Write-Host "args[0] " $args[0]
Write-Host "args[1] " $args[1]
Write-Host "args[2] " $args[2]
When I invoke this on powershell command line, I get
$> & file1.ps1 one two three
args[0] one
args[1] two
args[2] three
args[0] one two three
args[1]
args[2]
Ich verstehe, dass $ args in file1.ps ein System.Object [] anstelle von 3 Strings verwendet wird.
Ich brauche eine Möglichkeit, die $ args, die von file1.ps1 empfangen werden, an file2.ps1 zu übergeben, ähnlich wie bei% * in .bat-Dateien.
Ich fürchte, die bestehende Art und Weise wird auch dann brechen, wenn es ein funktionsübergreifender Aufruf ist, so wie es in meinem Beispiel eine Cross-Datei-Aufruf ist.
Habe ein paar Kombinationen ausprobiert, aber nichts funktioniert.
Bitte helfen. Würde es sehr schätzen.