Como criar um atalho que define uma variável de ambiente e, em seguida, inicia um programa sem deixar a janela do CMD aberta? [duplicado]

2

Eu quero criar um atalho na minha barra de tarefas que define uma variável de ambiente e, em seguida, lança um programa. Atualmente meu atalho vai para um arquivo .bat com estas linhas:

set RESGENTOOLARCHITECTURE=Managed32Bit
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"

mas isso deixa uma janela do CMD aberta durante a execução do programa que foi iniciado (neste caso, o Visual Studio). Existe uma maneira de fazer isso sem uma abertura na janela do CMD ou pelo menos sem que ela fique aberta?

Eu não quero definir a variável de ambiente em minha máquina geralmente, apenas quando eu executo este programa.

obrigado!

    
por Rory 11.07.2011 / 18:16

2 respostas

0

A resposta vinculada está correta, você não pode usar arquivos em lote.

Eu criaria um arquivo de lote que executa um script do PowerShell (o PowerShell está aqui para permanecer pelo menos no futuro previsível). Aqui está o arquivo em lote:

set RESGENTOOLARCHITECTURE=Managed32Bit
powershell c:\temp\OpenVisualStudio.ps1

E aqui está o conteúdo do arquivo de script do PS1 PowerShell:

start-process "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

Nomeie o que você quiser, mas eu os nomeei do mesmo (com exceção de extensão) e coloque-os no mesmo lugar. Eu queria combiná-los em um arquivo, mas era problemático definir a variável.

Eu testei isso, embora eu tenha usado para abrir o Word 2010.

    
por 11.07.2011 / 19:52
0

Como executar um arquivo bat sem exibir a janela de comando:

Crie um novo arquivo chamado 'runhidden.vbs' Edite-o com um editor de texto e insira a seguinte linha:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

Defina seu atalho para executar isso:

wscript.exe runhidden.vbs yourbatfile.bat

Naturalmente, os nomes de caminho devem ser adicionados a runhidden.vbs e yourbatfile.bat , se necessário. Isto irá executar o seu arquivo de dados de acesso sem mostrar a janela de comando.

EDIT: Para esclarecer "runhidden" é um nome totalmente arbitrário. Você pode nomear como quiser.

    
por 11.07.2011 / 18:25