Başlatılan programa iletilen parametrelerle “start” komutunu kullanma


224

Virtual PC 2007'de bir Sanal Makinem var.

Masaüstünden başlatmak için, bir toplu iş dosyasında aşağıdaki komut var:

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

Ancak bu, sanal makine kapanana kadar ana makinede bir dos istemi bırakır ve ben Virtual PC konsolundan çıkarım. Bu rahatsız edici.

Bu yüzden START komutunu kullanmak için komutumu değiştirdim, bunun yerine:

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

Ancak Sanal PC'ye geçirilen parametreleri boğar.

START /?parametrelerin gerçekten o konuma gittiğini gösterir. Birden fazla komut satırı bağımsız değişkenine sahip bir programı başlatmak için START'ı kullanan biri var mı?

Yanıtlar:


467

START, ilk parametrenin etrafında çift tırnak içeren bir özelliğe sahiptir. İlk parametrede çift tırnak varsa, bunu yeni pencere için isteğe bağlı TITLE olarak kullanır.

Ne istediğine inanıyorum:

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

Başka bir deyişle, sahte adlandırma için program adından önce boş bir başlık verin.


2
Bu onaylanmadı mı? Gelen Win 7 Ben olsunStart-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
Kim hayal ederdi. Cevabınızdaki upvotes sayısı, Microsoft'un bu 'özelliği' düzeltmesi için yeterli bir neden olmalıdır.
Piyush Soni

7
@geotheory Bunun eski bir yorum olduğunun farkındayım, ancak PowerShell'de start, Start-Process için bir takma addır. Cmd.exe'de (biraz eski, ancak kullanımdan kaldırılmadı) "start" farklıdır. Her ikisi de diğer işlemleri başlatmak içindir, ancak cmd cinsinden başlangıç ​​eski bir komuttur.
Adam Plocher

Bu bana çok fazla baş ağrısına neden oldu. Çözüm için teşekkürler!
uceumern

15

Bir toplu iş dosyası yerine, masaüstünde bir kısayol oluşturabilirsiniz.

Hedefi şu şekilde ayarlayın:

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

ve hazırsınız. Başlatmak için bir komut istemi başlatmadığınızdan, DOS Kutusu olmayacaktır.


3

Boşluklar DOS / CMDs Sorunlarıdır, bu nedenle Path'a şu yolla gitmelisiniz:

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

ve sonra VPC'yi şu yolla başlatın:

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

~1İlk anlamı exeile "Virtual"başında. Yani a "Virtual PC.exe"ve a varsa "Virtual PC1.exe"ilk Virtual~1.exeve ikinci olur Virtual~2.exe.

Veya VirtualBox gibi bir VNC-İstemcisi kullanın.


1
Bu makul bir çözüm gibi görünüyor, ancak kabul edilen cevabın kapsadığı altta yatan sorunu gerçekten ele almıyor.
Sam

1
kısa dosya adları etkin değilse bu çalışmaz. Sistemlerimde 8.3 dosya adlarını her zaman devre dışı
bırakıyorum

1

Bu cevapların hiçbiri benim için işe yaramadı.

Bunun yerine, Çağrı komutunu kullanmak zorunda kaldım:

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

Bu aslında tamamlanması için beklediğinden emin değilim ... Yüklediğim C ++ Yeniden Dağıtılabilir, önemli olmadığı kadar hızlı gitti


@rene düzenleme için teşekkürler. Daha fazla yanıt eklerseniz, kod bloğu biçimini kullandığınızdan emin olacağım
JustAnotherMikhail

0

"Tuhaflık" içindeki cevap doğrudur ve doğrudan soruyu cevaplar. TimF'in yanıtladığı gibi, ilk parametre tırnak içinde olduğu için pencere başlığı olarak değerlendirilir.

Ayrıca, Sanal PC seçeneklerinin 'start' komutunun kendisi için seçenek olarak değerlendirildiğini ve 'start' için geçerli olmadığını unutmayın. Bu, Windows'un 'start' komutuna sahip tüm sürümleri için geçerlidir.

Alıntılanan parametreye bir başlık olarak davranmaya 'başlamak' ile ilgili bu sorun, sadece yayınlanan sorunu daha da can sıkıcıdır. Bunu çalıştırırsanız:

start "some valid command with spaces"

Yeni bir komut istemi penceresi, bir pencere başlığı için bariz sonuç elde edersiniz. Daha da can sıkıcı olan bu yeni pencere, özelleştirilmiş yazı tipini, renkleri veya pencere boyutunu devralmaz, cmd.exe için varsayılan değerdir.


0

Parametreyi ve .exe dosyanızı c: sürücüsünün test klasöründe geçirmek istiyorsanız

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

Parametreyi ve .exe dosyanızı c: sürücüsünün test klasöründe iletmek istemiyorsanız

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

Parametreyi ve .exe dosyanızı H: (Any Any) sürücüsünün test klasöründe iletmek istemiyorsanız

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


0

Herhangi bir parametrede çift tırnak işareti kullanmanız gerekiyorsa "c: \ somepath" dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmadı "hatası alabilirsiniz. Çift qoutation işaretini kullanırken aşağıdaki çözümü öneririm: https://stackoverflow.com/a/43467194/3835640


0

Tırnak işaretlerini [+ /D"Path"] yolunu kullanarak + yolunu değil, /D yalnızca yolu belirtmek için kullanabilirsiniz . Aynı satırdaki tüm kodların, yolu ve dosyayı ayırmanız gerekmediği anlamına gelen normal duruma geri döndüğü anlaşılıyor.

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

veya:

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

IE'yi varsayılan web sayfasıyla başlatacaktır.

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

Bing ile başlar, ancak ana sayfanızı sıfırlamaz.

/D "dizin" anlamına gelir ve tırnak kullanarak sorun yok!

YANLIŞ ÖRNEK:

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

verir:

HATA " Geçerli dizin geçersiz. "

/Dyalnızca bir dizin yolu gelmelidir. Sonra boşluk ve başlatmak / çalıştırmak istediğiniz toplu iş dosyası veya program

XP altında test edildi ve çalışıyor ancak Windows Vista / 7 / 8'in UAC'de bazı ayarlamalar yapması gerekebilir.

-Mrbios


-1

/b parametre

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

Bu parametre ne işe yarar?
Azeezah M

3
@AzeezahM / b, yeni bir cmd penceresinin açılmayacağı anlamına gelir. Bu op'un sorusuna cevap vermiyor.
aclave1

-4

denedin mi:

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

?


-4

Komutu bir toplu iş dosyasına koyun ve parametrelerle çağırın.

Ayrıca, bunu henüz denediniz mi? (Parametreleri kapsüllemek için son alıntıyı taşı)

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

-4

"Virtual PC.exe" klasöründe "VirtualPC.exe" gibi boşluk olmayan bir adla değiştirin. start "path""" İle yazdığınızda CMD, başlık olarak yeni bir cmd penceresi başlatır. Adı boşluksuz bir adla değiştirin, bunu Not Defteri'ne yazın ve bundan sonra Name.cmd veya Name.bat gibi kaydedin:

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

Bu komut CMD'yi klasöre yönlendirir, VirualPC.exe dosyasını başlatır, 2 saniye bekleyip çıkar.


1
Yazılım güncellenirse ne olur? Aniden bir artık sanalpc.exe'niz var.
Michael Beck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.