Saya mencoba menjalankan file EXE menggunakan skrip PowerShell. Jika saya menggunakan baris perintah, ini berfungsi tanpa masalah (pertama-tama saya memberikan nama yang dapat dieksekusi dan serangkaian parameter untuk memintanya):
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Tetapi melakukan hal yang persis sama di dalam skrip akan mengembalikan kesalahan:
Istilah '"C: \ Program Files \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe" C: \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode' tidak dikenali sebagai nama cmdlet, fungsi , file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika sebuah jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi.
(Saya menjalankan perintah menggunakan operator "&".)
Bagaimana cara memperbaiki masalah ini?
Jawaban:
atau
UPDATE: maaf saya melewatkan "(saya memanggil perintah menggunakan" & "operator)" kalimat. Saya mengalami masalah ini ketika saya mengevaluasi jalur secara dinamis. Coba konstruksi Invoke-Expression:
sumber
Sepertinya Anda menentukan EXE dan argumen pertamanya dalam satu string misalnya;
'"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'
. Ini tidak akan berhasil. Secara umum Anda memanggil perintah asli yang memiliki spasi di jalurnya seperti ini:Itu
&
diharapkan diikuti oleh string yang mengidentifikasi perintah: cmdlet, function, native exe relative atau absolute path.Setelah Anda mulai bekerja:
Mulailah mengerjakan kutipan argumen seperlunya. Meskipun tampaknya argumen Anda baik-baik saja (tanpa spasi, tidak ada karakter khusus lain yang ditafsirkan oleh PowerShell).
sumber
.\foo.exe
dan Anda juga dapat menggunakan jalur relatif..\..\foo.exe
dan jalur relatif dengan spasi& '..\..\path with spaces\foo.exe'
.cmd /c "C:\temp\strarc.exe -cjd:M:\ | C:\temp\strarc.exe -s:8 -xd:N:\"
.Di Powershell, cd ke lokasi file .exe. Sebagai contoh:
cd C: \ Users \ Administrators \ Downloads
PS C: \ Users \ Administrators \ Downloads> & '. \ Aaa.exe'
Penginstal muncul dan mengikuti instruksi di layar.
sumber
Demo:
sumber
Bukan sebagai pengembang, saya menemukan solusi dalam menjalankan beberapa perintah ps dalam satu baris. Misalnya:
Dengan menempatkan "(tanda kutip ganda) sebelum & (ampersand) menjalankan eksekusi. Dalam contoh tidak ada yang saya temukan ini disebutkan. Tanpa tanda kutip ganda, prompt ps terbuka dan menunggu masukan.
sumber