Por que “start winword” funciona mas apenas “winword” não funciona?

6

Suponha que o Microsoft Office esteja instalado. Considere o seguinte arquivo em lotes:

REM the following line successfully launches Microsoft Word
start winword

REM none of the following commands work to launch Microsoft Word
winword
winword.exe
winword.com
winword.bat
winword.cmd
winword.vbs
winword.vbe
winword.js
winword.jse
winword.wsf
winword.wsh
winword.msc

O que é sobre a instrução "start" que permite o lançamento do Microsoft Word usando o nome "winword"?

Minha curiosidade decorre do meu interesse na mecânica do verbo "start" - não preciso de sugestões sobre outras formas de iniciar o Microsoft Office. Por favor, não sugira que eu adicione o diretório do Microsoft Office à minha variável de ambiente PATH - eu sei o que isso faria.

Como start está encontrando "winword" quando cmd não pode encontrá-lo diretamente?

    
por Mike Clark 29.11.2012 / 21:19

3 respostas

9

A chave Caminhos do aplicativo é avaliada logo após PATH se não me engano:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe]
@="C:\PROGRA~2\MICROS~1\Office14\WINWORD.EXE"
"Path"="C:\Program Files (x86)\Microsoft Office\Office14\"
"useURL"="1"
"SaveURL"="1"

É assim que o comando Iniciar e a caixa de diálogo Executar reconhecem o Winword.exe como um alias válido. Para mais, leia Como é possível executar o Wordpad digitando o nome dele mesmo que não está no caminho? por Raymond Chen.

    
por 29.11.2012 / 21:35
5

Não é apenas o começo, mas também a "caixa de diálogo Executar". O segredo?

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Execute a caixa de diálogo e inicie as verificações aqui também. A linha de comando não.

    
por 29.11.2012 / 21:46
0

Portanto, o método Start no cmd permite que um usuário inicie uma janela SEPARATE no Windows a partir da linha de comando do Windows. Sem o 'método, o cmd tenta iniciar / lançar os recursos definidos, mas sem extensão, ele obtém como um diretório e, portanto, nenhum efeito ...

Arquivos não executáveis podem ser invoked através de seus file association apenas digitando o nome do arquivo como um comando.

(por exemplo, o WORD.DOC iniciaria o aplicativo associado à extensão de arquivo .DOC).

Consulte os comandos ASSOC e FTYPE para saber como criá-los associações de dentro de um script de comando. '

    
por 29.11.2012 / 21:28