Próbuję wykonać plik EXE przy użyciu skryptu PowerShell. Jeśli korzystam z wiersza poleceń to działa bez problemu (najpierw podaję nazwę pliku wykonywalnego i szereg parametrów, aby go wywołać):
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Ale zrobienie dokładnie tego samego wewnątrz skryptu zwraca błąd:
Termin „C: \ Program Files \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe” C: \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode nie jest rozpoznawany jako nazwa cmdletu , funkcji , plik skryptu lub działający program. Sprawdź pisownię nazwy lub, jeśli ścieżka została dołączona, sprawdź, czy jest ona poprawna i spróbuj ponownie.
(Wywołałem polecenie, używając operatora „&”.)
Jak mogę rozwiązać ten problem?
Odpowiedzi:
lub
AKTUALIZACJA: przepraszam, że przegapiłem zdanie "(wywołałem polecenie, używając operatora" & ")". Miałem ten problem, gdy dynamicznie oceniałem ścieżkę. Wypróbuj konstrukcję Invoke-Expression:
źródło
Wygląda na to, że określasz zarówno plik EXE, jak i jego pierwszy argument w jednym ciągu, np.;
'"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'
. To nie zadziała. Ogólnie rzecz biorąc, wywołujesz natywne polecenie, które ma spację na swojej ścieżce:Oznacza to
&
oczekuje, że będzie następnie ciąg, który identyfikuje polecenie: cmdlet, funkcja, rodzimych exe ścieżkę względną lub bezwzględną.Gdy już to działa:
W razie potrzeby rozpocznij pracę nad cytowaniem argumentów. Chociaż wygląda na to, że twoje argumenty powinny być w porządku (bez spacji, żadnych innych znaków specjalnych interpretowanych przez PowerShell).
źródło
.\foo.exe
i możesz również użyć ścieżki względnej..\..\foo.exe
i ścieżki względnej ze spacjami& '..\..\path with spaces\foo.exe'
.cmd /c "C:\temp\strarc.exe -cjd:M:\ | C:\temp\strarc.exe -s:8 -xd:N:\"
.W programie PowerShell przejdź do lokalizacji pliku .exe. Na przykład:
cd C: \ Users \ Administrators \ Downloads
PS C: \ Users \ Administrators \ Downloads> & '. \ Aaa.exe'
Pojawi się instalator i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
źródło
Próbny:
źródło
Nie będąc programistą, znalazłem rozwiązanie polegające na uruchamianiu wielu poleceń ps w jednej linii. Na przykład:
Umieszczając "(podwójny cudzysłów) przed & (ampersand)" uruchamia plik wykonywalny. W żadnym z przykładów, które nie znalazłem, nie było o tym wspominane. Bez podwójnych cudzysłowów otwiera się zachęta ps i czeka na wejście.
źródło