Jest to nieprzyjemny problem, z którym mam do czynienia. Nie zdziw się, jeśli ma proste rozwiązanie, tylko że mnie umyka.
Mam 2 pliki wsadowe, które muszę przekonwertować na skrypty powershell.
file1.bat
---------
echo %1
echo %2
echo %3
file2.bat %*
file2.bat
--------
echo %1
echo %2
echo %3
W linii polecenia Przyzywam to jako C:> file1.bat jeden dwa trzy Wyjście widzę jest prawidłowo jeden dwa trzy jeden dwa trzy
(To jest surowa próbka kodu)
Po konwersji na Powershell, mam
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]
Rozumiem, że to dlatego, że $ args użyte w file1.ps to System.Object [] zamiast 3 ciągów.
Potrzebuję sposobu przekazania $ args odebranych przez plik1.ps1 do pliku2.ps1, podobnie jak w plikach .bat.
Obawiam się, że istniejący sposób postępowania zostanie przerwany, nawet jeśli jest to wywołanie funkcji krzyżowej, tak jak jest to wywołanie cross-file w moim przykładzie.
Próbowałem kilku kombinacji, ale nic nie działa.
Uprzejmy pomoc. Bardzo to doceniam.