Qual é o comando ou a maneira mais rápida de gerar resultados para o console usando vbscript?
165
Você quer dizer:
Wscript.Echo "Like this?"
Se você executá-lo em wscript.exe
(o manipulador padrão da extensão .vbs, o que você obterá se clicar duas vezes no script), você verá uma caixa de diálogo "MessageBox" com o seu texto. Se você executar isso em baixo, cscript.exe
obterá saída na janela do console.
MsgBox("text")
ouMsgBox(object.property)
, masWscript.Echo
é mais fácil de escrever. Obrigado.WScript.Echo
deve ser usado se você estiver executando viaWScript
ouCScript
. Ou seja, há não é umCScript.Echo
, no caso futuras Googlers maravilha. ( Muito felizes os Msgboxes são ido [quando executado comcscript
], no entanto, obrigado.)WScript.Echo
. Suponho que, se você quiser ficar totalmente dentro do WScript, poderá fazer algo terrivelmente desonesto, como Executar outro processo para executar um "SendKeys" no processo pai para fechar o MessageBox.popup
método. Muito parecido com,echo
mas permite especificar um tempo limite após o qual ele fechará automaticamente a caixa pop-up. Muito conveniente e fácil de usar: technet.microsoft.com/en-us/library/ee156593.aspxIsso foi encontrado nos scripts Dragon-IT e no repositório de códigos .
Você pode fazer isso com o seguinte e ficar longe das diferenças cscript / wscript e permite obter a mesma saída do console que um arquivo em lotes teria. Isso pode ajudar se você estiver chamando o VBS de um arquivo em lotes e precisar torná-lo uniforme.
fonte
WScript.Echo
. De fato, a diferença é ampliada, porque o script não será mais executado no WScript. É uma técnica válida que tem seus usos, por exemplo, se é necessário escrever para o StdErr, mas, no contexto desta resposta, é enganosa.WScript.Echo
:cscript //b foobar.vbs
Executafoobar.vbs
sem nenhuma saída do console, mas pelo método de Rob você pode ter saída mesmo quando passa\\b
paracscript.exe
Você só precisa forçar cscript em vez de wscript. Eu sempre uso este modelo. A função ForceConsole () executará seus vbs em cscript; você também tem um bom alias para imprimir e digitalizar texto.
fonte
Me deparei com este post e voltei a uma abordagem que eu usei há algum tempo atrás, que é semelhante à @ MadAntrax.
A principal diferença é que ele usa uma classe definida pelo usuário do VBScript para agrupar toda a lógica para alternar para CScript e enviar texto para o console, tornando o script principal um pouco mais limpo.
Isso pressupõe que seu objetivo é transmitir a saída para o console, em vez de enviar a saída para as caixas de mensagens.
A classe cCONSOLE está abaixo. Para usá-lo, inclua a classe completa no final do seu script e instancie-a logo no início do script. Aqui está um exemplo:
Aqui está o código para a classe cCONSOLE
fonte
Existem cinco maneiras de gerar texto para o console:
O WScript.Echo produzirá no console, mas apenas se o script for iniciado usando o cscript.exe. Ele será exibido nas caixas de mensagens se começar a usar o wscript.exe.
WScript.StdOut.Write e WScript.StdOut.WriteLine sempre serão exibidos no console.
StdOut.Write e StdOut.WriteLine também sempre serão exibidos no console. Requer criação de objeto extra, mas é cerca de 10% mais rápido que o WScript.Echo.
fonte