Menggunakan perintah "mulai" dengan parameter yang diteruskan ke program yang dimulai

224

Saya memiliki Mesin Virtual di Virtual PC 2007.

Untuk memulainya dari desktop, saya memiliki perintah berikut dalam file batch:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

Tapi itu meninggalkan dos prompt pada mesin host sampai mesin virtual dimatikan, dan saya keluar dari konsol PC Virtual. Itu mengganggu.

Jadi saya mengubah perintah saya untuk menggunakan perintah START, sebagai gantinya:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Tapi itu tersedak parameter yang dilewatkan ke dalam Virtual PC.

START /?menunjukkan bahwa parameter memang masuk di lokasi itu. Adakah yang menggunakan MULAI untuk meluncurkan program dengan beberapa argumen baris perintah?

JosephStyons
sumber

Jawaban:

467

START memiliki kekhasan yang melibatkan tanda kutip ganda di sekitar parameter pertama. Jika parameter pertama memiliki tanda kutip ganda ia menggunakannya sebagai TITLE opsional untuk jendela baru.

Saya percaya yang Anda inginkan adalah:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Dengan kata lain, berikan judul kosong sebelum nama program untuk memalsukannya.

Tim Farley
sumber
2
Apakah ini sudah usang? Di Win 7 saya dapatkanStart-Process : Cannot validate argument on parameter 'FilePath'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again
geotheory
1
Siapa yang akan membayangkan. Jumlah upvotes untuk jawaban Anda harus menjadi alasan yang cukup bagi Microsoft untuk memperbaiki 'keanehan' ini.
Piyush Soni
7
@geotheory Saya menyadari ini adalah komentar lama, tetapi di PowerShell, start adalah alias untuk Start-Process. Di cmd.exe (agak kuno, tetapi tidak usang) "mulai" berbeda. Keduanya dimaksudkan untuk memulai proses lain, tetapi mulai adalah perintah lama yang tertanam dalam cmd.
Adam Plocher
Ini menyebabkan saya sakit kepala. Terima kasih atas solusinya!
uceumern
15

Alih-alih file batch, Anda dapat membuat pintasan di desktop.

Tetapkan target ke:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

dan Anda sudah siap. Karena Anda tidak memulai prompt perintah untuk meluncurkannya, tidak akan ada Kotak DOS.

Ferruccio
sumber
3

Ruang adalah Masalah DOS / CMD sehingga Anda harus pergi ke Path melalui:

cd "c:\program files\Microsoft Virtual PC"

dan kemudian cukup jalankan VPC melalui:

start Virtual~1.exe -pc MY-PC -launch

~1berarti yang pertama exedengan "Virtual"di awal. Jadi jika ada a "Virtual PC.exe"dan a "Virtual PC1.exe"yang pertama akan menjadi Virtual~1.exedan yang kedua Virtual~2.exedan seterusnya.

Atau gunakan VNC-Client seperti VirtualBox.

ghostdog21
sumber
1
Ini terlihat seperti penyelesaian yang masuk akal, tetapi tidak benar-benar mengatasi masalah mendasar, yang dicakup oleh jawaban yang diterima.
Sam
1
ini tidak akan berfungsi jika nama file pendek tidak diaktifkan. Saya selalu menonaktifkan 8.3 nama file di sistem saya
phuclv
1

Tidak satu pun dari jawaban ini yang berhasil untuk saya.

Sebaliknya, saya harus menggunakan perintah Panggilan:

Call "\\Path To Program\Program.exe" <parameters>

Saya tidak yakin ini benar-benar menunggu untuk selesai ... C ++ Redistributable yang saya instal berjalan cukup cepat sehingga tidak masalah

JustAnotherMikhail
sumber
@ irene, terima kasih atas hasil editnya. Jika saya menambahkan jawaban lagi, saya pasti akan menggunakan format blok kode
JustAnotherMikhail
0

Jawaban dalam "kekhasan" adalah benar dan langsung menjawab pertanyaan. Ketika TimF menjawab, karena parameter pertama adalah dalam tanda kutip, itu diperlakukan sebagai judul jendela.

Perhatikan juga bahwa opsi Virtual PC sedang diperlakukan sebagai opsi untuk perintah 'mulai' itu sendiri, dan tidak valid untuk 'mulai'. Ini berlaku untuk semua versi Windows yang memiliki perintah 'mulai'.

Masalah ini dengan 'mulai' memperlakukan parameter yang dikutip sebagai judul bahkan lebih menjengkelkan bahwa hanya masalah yang diposting. Jika Anda menjalankan ini:

start "some valid command with spaces"

Anda mendapatkan jendela command prompt baru, dengan hasil yang jelas untuk judul window. Yang lebih menjengkelkan, jendela baru ini tidak mewarisi font, warna, atau ukuran jendela yang disesuaikan, itu hanya default untuk cmd.exe.

BitDreamer
sumber
0

Jika Anda ingin meneruskan parameter dan file .exe Anda di folder uji c: drive

start "parameter" "C:\test\test1.exe" -pc My Name-PC -launch

Jika Anda tidak ingin melewatkan parameter dan file .exe Anda di folder uji c: drive

start "" "C:\test\test1.exe" -pc My Name-PC -launch

Jika Anda tidak ingin melewatkan parameter dan file .exe Anda di folder uji drive H: (Lainnya)

start "" "H:\test\test1.exe" -pc My Name-PC -launch

Mack
sumber
0

Jika Anda harus menggunakan tanda kutip ganda pada parameter apa pun, Anda bisa mendapatkan kesalahan "'c: \ somepath' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch". Saya sarankan solusi di bawah ini ketika menggunakan tanda qoutation ganda: https://stackoverflow.com/a/43467194/3835640

Mustafa Kemal
sumber
0

Anda dapat menggunakan tanda kutip dengan menggunakan [ /D"Path"] gunakan /D hanya untuk menentukan path dan bukan path + program. Tampaknya semua kode pada baris yang sama mengikuti kembali ke makna normal Anda tidak perlu memisahkan jalur dan file.

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

atau:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

akan memulai IE dengan halaman web default.

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com

dimulai dengan Bing, tetapi tidak menyetel ulang beranda Anda.

/D singkatan dari "direktori" dan menggunakan tanda kutip adalah OK!

CONTOH SALAH:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

memberi:

GALAT " Direktori saat ini tidak valid. "

/Dharus hanya diikuti oleh jalur direktori. Kemudian ruang dan kumpulan file atau program yang ingin Anda mulai / jalankan

Diuji dan bekerja di bawah XP tetapi windows Vista / 7/8 mungkin perlu beberapa penyesuaian untuk UAC.

-Mrbios

Mrbios
sumber
-1

/b parameter

start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
T.Todua
sumber
Apa yang dilakukan parameter ini?
Azeezah M
3
@AzeezahM / b berarti bahwa jendela cmd baru tidak akan dibuka. Ini tidak menjawab pertanyaan op sekalipun.
aclave1
-4

sudahkah anda mencoba:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" "-pc MY-PC -launch"

?

albertein
sumber
-4

Masukkan perintah di dalam file batch, dan panggil itu dengan parameter.

Juga, apakah Anda sudah mencoba ini? (Pindahkan kutipan akhir untuk merangkum parameter)

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"
Mark Allen
sumber
-4

Ubah "Virtual PC.exe" menjadi nama tanpa spasi seperti "VirtualPC.exe" di folder. Ketika Anda menulis start "path"dengan "" CMD memulai jendela cmd baru dengan path sebagai judul. Ubah nama menjadi nama tanpa spasi, tulis ini di Notepad dan setelah ini simpan seperti Name.cmd atau Name.bat:

CD\
CD Program Files
CD Microsoft Virtual PC
start VirtualPC.exe
timeout 2
exit

Perintah ini akan mengarahkan CMD ke folder, mulai VirualPC.exe, tunggu 2 detik dan keluar.

Rafael Pereira
sumber
1
Apa yang terjadi jika perangkat lunak diperbarui? Tiba-tiba Anda mendapat virtualpc.exe yatim.
Michael Beck