Usando o comando “start” com os parâmetros passados ??para o programa começou

StackOverflow https://stackoverflow.com/questions/154075

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho uma máquina virtual no Virtual PC 2007.

Para iniciá-lo a partir do desktop, eu tenho o seguinte comando em um arquivo de lote:

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

Mas isso deixa um prompt do DOS na máquina host até que as fecha de máquinas virtuais para baixo, e eu sair do console PC Virtual. Isso é irritante.

Então, eu mudei de comando para usar o comando START, em vez disso:

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

Mas ele se engasga com os parâmetros passados ??para o Virtual PC.

START /? indica que os parâmetros de fato ir nessa localização. Alguém já usou START para lançar um programa com vários argumentos de linha de comando?

Foi útil?

Solução

INÍCIO tem uma peculiaridade envolvendo aspas em torno do primeiro parâmetro. Se o primeiro parâmetro tem aspas ele usa que como o título opcional para a nova janela.

Eu acredito que o que você quer é:

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

Em outras palavras, dar-lhe um título vazio antes do nome do programa de falsificar-lo.

Outras dicas

Em vez de um arquivo de lote, você pode criar um atalho na área de trabalho.

Definir o alvo:

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

e está tudo pronto. Desde que você não está começando um prompt de comando para iniciá-lo, não haverá caixa DOS.

Os espaços são Doss Problemas / TMC por isso você deve ir para o Caminho via:

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

e, em seguida, basta começar a VPC via:

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

~1 significa o primeiro exe com "Virtual" no início. Portanto, se há um "Virtual PC.exe" e uma "Virtual PC1.exe" o primeiro seria o Virtual~1.exe eo segundo Virtual~2.exe e assim por diante.

Ou usar um VNC-Client como o VirtualBox.

A resposta em "peculiaridade" está correto e responde diretamente à pergunta. Como TIMF respondeu, já que o primeiro parâmetro é entre aspas, ele é tratado como um título da janela.

Observe também que as opções do Virtual PC estão sendo tratados como opções para o próprio comando 'start', e não são válidos para 'start'. Isto é verdade para todas as versões do Windows que têm o comando 'start'.

Este problema com 'start' tratar o parâmetro citado como um título é ainda mais irritante que apenas o problema postado. Se você executar este:

start "some valid command with spaces"

Você começa uma nova janela do prompt de comando, com o resultado óbvio para um título da janela. Ainda mais irritante, esta nova janela não herda personalizado fonte, cores ou tamanho da janela, é apenas o padrão para cmd.exe.

Se você deve usar aspas duplas em qualquer parâmetro, você pode obter de erro " 'c: \ somepath' não é reconhecido a um comando interno ou externo, programa operacional ou ficheiro batch". Sugiro abaixo solução quando usando dupla marca qoutation: https://stackoverflow.com/a/43467194/3835640

Você pode usar aspas usando os botões [/D"Path"] utilização /D única para especificar o caminho e não o caminho + programa. Parece que todo o código na mesma linha que segue remonta ao significado normal você não precisa caminho e arquivo separado.

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

ou

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

começará IE com a página da Web padrão.

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

começa com Bing, mas não redefinir sua home page.

/D significa "diretório" e usando aspas é OK!

mau exemplo:

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

dá:

ERROR " O diretório atual é inválido. "

/D só deve ser seguido por um caminho de diretório. Em seguida, o espaço eo batchfile ou programa que deseja iniciar / run

testado e funciona no XP, mas o Windows Vista / 7/8 pode precisar de alguns ajustes para UAC.

-Mrbios

Nenhuma dessas respostas trabalharam para mim.

Em vez disso, eu tive que usar o comando de chamada:

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

Eu não estou certo de que este realmente aguarda a conclusão ... o C ++ Redistributable eu estava instalando fui rápido o suficiente para que ele não importa

Se você quiser passar parâmetros e seu arquivo .exe na pasta de teste de unidade c:

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

Se você não vai querer passar parâmetro e seu arquivo .exe na pasta de teste de unidade c:

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

Se você não vai querer passar parâmetro e seu arquivo .exe na pasta de teste de H: (Qualquer Outra) unidade

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

"/ b" parâmetro

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

Alterar O "PC.exe Virtual" a um nome sem espaço como "VirtualPC.exe" na pasta. Quando você escreve start "path" com "" o CMD inicia uma nova janela cmd com o caminho como o título. Alterar o nome para um nome sem espaço, escreva isso no bloco de notas e, após este salvar como Name.cmd ou Name.bat:

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

Este comando irá redirecionar o CMD para a pasta, inicie o VirualPC.exe, espere 2 segundos e sair.

você já tentou:

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

?

Coloque o comando dentro de um arquivo de lote, e chamar isso com os parâmetros.

Além disso, se você tentar isso ainda? (Mover Citação fim parâmetros Encapsular)

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top