Você poderia tentar substituir suas linhas que mostram
:vmSTARTAPP
"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
com
:vmSTARTAPP
start "Starting VMWare" /B "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
Suponho que você queira iniciar silenciosamente o VMWare e continuar sem parar e isso, em teoria, deveria fazer isso.
O comando start
instrui o DOS a executar o comando que você está passando para ele (nesse caso, "C: \ Arquivos de Programas (x86) \ VMware \ Workstation VMware \ vmware.exe") e, por padrão, não espera para o comando que você passa para retornar e, em vez disso, o executa em um processo separado.
Por padrão, cada linha que você tem em um arquivo de lote é executada sequencialmente e espera que todas as linhas sejam executadas e retornadas antes de passar para a próxima linha. O comando start
contorna isso iniciando o programa que você passa em um processo separado (janela do DOS) e, assim, seu arquivo em lote encontra essa linha, como normalmente faria, vê que o comando start
retornou (depois criando um novo processo para executar seu comando) e seu arquivo de lote continua como se nada de inesperado tivesse ocorrido.
O título "Starting VMWare"
é simplesmente que, um título, a janela recém-criada do DOS teria esse título se não fosse pelo argumento /B
que diz para ele não mostrar a nova janela do DOS. O título é meio que necessário, mas é opcional e eu tive um momento WTF ocasional em scripts sem ele, mas esses tempos são mais exceção do que a regra.
Você pode encontrar mais informações sobre o comando Iniciar no link