Existe uma maneira de exibir uma caixa de mensagem de um arquivo em lotes (semelhante a como xmessage
pode ser usado a partir de scripts bash no Linux)?
windows
batch-file
command-line
messagebox
billyy
fonte
fonte
Respostas:
Eu criaria um arquivo VBScript muito simples e o chamaria usando CScript para analisar os parâmetros da linha de comando.
Algo como o seguinte foi salvo em
MessageBox.vbs
:Você chamaria assim:
MsgBox
referência se você estiver interessado em seguir esta rota.fonte
Antes de tudo, o DOS não tem nada a ver com isso; você provavelmente deseja uma solução de linha de comando do Windows (novamente: sem DOS, Windows puro, apenas não uma janela, mas um console).
Você pode usar o método VBScript fornecido por boflynn ou pode usar mal
net send
oumsg
.net send
funciona apenas em versões mais antigas do Windows:Porém, isso também depende do serviço do Messenger para ser executado.
Para versões mais recentes (XP e posteriores, aparentemente):
Note-se que uma caixa de mensagem enviada usando
msg.exe
dura apenas 60 segundos. No entanto, isso pode ser substituído pelo/time:xx
comutador.fonte
Pode exibir um pouco de flash, mas nenhum arquivo temporário é necessário. Deve funcionar de volta a algum lugar da era (IIRC) IE5.
Não se esqueça de escapar dos parênteses se estiver usando
if
:fonte
close() was unexpected at this time
.^
caracteres de escape em um arquivo batIsso abrirá outra janela do prompt de comando:
fonte
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
alterecols=18
para a quantidade de caracteres na mensagem + 2. E olines=2
para qualquer que seja a quantidade de linhas é + 1.cmd /k
Experimentar :
Se você estiver usando o command.com do Windows XP, isso abrirá uma caixa de mensagem.
Abrir uma nova janela do cmd não é exatamente o que você estava pedindo, pelo que entendi. Você também pode usar o VBScript e usá-lo com o seu arquivo .bat. Você o abriria do arquivo bat com este comando:
O que isso faz é alterar o diretório command.com procurará por arquivos e, na próxima linha:
Em seguida, você cria um novo documento do bloco de notas , digite
Você então salvaria isso como um arquivo .vbs (colocando ".vbs" no final do nome do arquivo) e salve como "Todos os arquivos" na caixa suspensa abaixo do nome do arquivo (para que não seja salvo como .txt ) e clique em Salvar!
fonte
<script/>
tag.msg *
, será solicitado a inserir uma mensagem seguida de ctrl-Z. Você pode inserir quebras de linha aqui que aparecerão na sua mensagem.Mais algumas maneiras.
1) O mais geek e hackiest - ele usa o IEXPRESS para criar um exe pequeno que criará um pop-up com um único botão ( ele pode criar mais dois tipos de mensagens pop-up ). Funciona em TODAS as janelas do XP e acima:
2) Usando
MSHTA
. Também funciona em todas as máquinas Windows a partir do XP e acima (apesar do OP não desejar idiomas "externos", o JavaScript aqui é minimizado). Deve ser salvo como.bat
:ou em uma linha:
ou
ou
3) Aqui está o
.bat/jscript
híbrido parametrizado (deve ser salvo comobat
). Ele novamente usa JavaScript, apesar da solicitação do OP, mas como é um bastão, pode ser chamado como um arquivo bat sem preocupações. Ele usa POPUP, que permite um pouco mais de controle do que o MSGBOX mais popular . Ele usa o WSH, mas não o MSHTA, como no exemplo acima.4) e um
jscript.net/.bat
híbrido (deve ser salvo como.bat
). Desta vez, ele usa.NET
e compila um pequeno.exe
arquivo que pode ser excluído:5) e, no final, uma única chamada para o PowerShell que cria um pop-up (pode ser chamado na linha de comando ou em lote, se o PowerShell estiver instalado):
6) E a abordagem do dbenham vista aqui
7 ) Para as notificações da bandeja do sistema, você pode tentar o seguinte :
fonte
Dessa forma, seu arquivo em lotes criará um script VBS e exibirá um pop-up. Após a execução, o arquivo em lotes excluirá esse arquivo intermediário.
A vantagem de usar o MSGBOX é que ele é realmente habitável (altere o título, o ícone etc.), enquanto o MSG.exe não é o mesmo.
fonte
Aqui está uma variante do PowerShell que não exige o carregamento de assemblies antes da criação da janela; no entanto, é notavelmente mais lenta (~ + 50%) do que o comando PowerShell MessageBox postado aqui por @npocmaka:
Você pode alterar o último parâmetro de "0x0" para um valor abaixo para exibir ícones na caixa de diálogo (consulte Método pop-up para obter mais referências):
0x10 Parar
0x20 Ponto de interrogação
0x30 Ponto de exclamação
0x40 Ponto de informações
Adaptado do artigo Microsoft TechNet PowerTip: Use o PowerShell para exibir a janela pop-up .
fonte
–Pode escrever qualquer número de 0,1,2,3,4 em vez de 0 (antes do símbolo '+') e aqui está o significado de cada número:
–Pode escrever qualquer número entre 16,32,48,64 em vez de 16 (após o símbolo '+') e aqui está o significado de cada número:
fonte
Msg * "insira sua mensagem aqui"
funciona bem, apenas salve como um arquivo .bat no bloco de notas ou verifique se o formato está definido como "todos os arquivos"
fonte
msg %SESSIONNAME% msg
Essa mensagem aguarda uma eternidade até clicar em OK (dura apenas um minuto por padrão) e funciona bem no Windows 8.1
fonte
msg * /time:0 /w <C:\Somewhere\Message.txt
onde no arquivo há texto normal (contendo CrLf).Para fazer isso, você precisa de um pequeno programa que exiba uma caixa de mensagens e execute-o no seu arquivo em lotes.
Você pode abrir uma janela do console que exibe um prompt, mas não é possível obter uma caixa de mensagem da GUI usando apenas cmd.exe e amigos, AFAIK.
fonte
Eu uso um utilitário chamado msgbox.exe a partir daqui: http://www.paulsadowski.com/WSH/cmdprogs.htm
fonte
Você pode usar o Zenity . O Zenity permite a execução de caixas de diálogo em scripts de linha de comando e shell. Mais informações também podem ser encontradas na Wikipedia .
É multiplataforma: um instalador do Windows para Windows pode ser encontrado aqui .
fonte
Seguindo a resposta de @ Fowl, você pode melhorá-lo com um tempo limite para aparecer apenas por 10 segundos usando o seguinte:
Veja aqui para mais detalhes.
fonte
Você pode invocar a função DLL do user32.dll eu acho que algo como
Digitando no meu telefone, não me julgue ... caso contrário, eu vincularia as bandeiras extras.
fonte
rundll32.exe user32.dll,MessageBoxA X
exibir uma caixa de mensagens com X como título quando o faço na caixa Executar. Não importa o que eu faça X ser, não consigo interpretá-lo como vários parâmetros - tudo vai para o título. Portanto,rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
exibe uma caixa de mensagens com o título(0, "MyTitle", "MyText", 0)
Mas eu não consigo fazê-la funcionar A TUDO na linha de comando - apenas na caixa Executar. Na linha de comando, ele não faz nada. Funciona com certeza a partir de uma linha de comando ou de um arquivo em lotes ou apenas da caixa Executar?msg * /server:127.0.0.1 Digite sua mensagem aqui
fonte
where msg
retornaC:\Windows\System32\msg.exe
. Eu acho que você está pensando emnet send
Esse aplicativo pode fazer isso se você converter (agrupar) seus arquivos em lotes em arquivos executáveis.
Simple Messagebox
Mensagem de erro
Cancelar Tente novamente Messagebox
4) "Nunca me pergunte novamente" Messagebox
fonte
Uma opção melhor
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
Descrição:
lines=
quantidade de linhas, mais 1cols=
quantidade de caracteres na mensagem e mais 3 (no entanto, o mínimo deve ser15
)cols
Versão calculada automaticamente:set my_message=Hello world
&& (echo %my_message%>EMPTY_FILE123 && FOR %? IN (EMPTY_FILE123 ) DO SET strlength=%~z? && del EMPTY_FILE123 ) && start cmd /c "@echo off && mode con lines=2 cols=%strlength% && echo %my_message% && pause>nul"
fonte
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
). O seu não. Ele ecoa a mensagem, mas não consegue definir o tamanho da janela de retornarThe screen cannot be set to the number of lines and columns specified.
pelo menos em meu Windows 7.x
no diretório atual ou você não se importe de perdê-lo.x
, seu comando falhará. Não me agradeça e apenas corrija seu código. Você nem precisa usar uma linha. E se você acha que seu código é tão bom, publique-o na Revisão de Código .Aqui está o meu script em lote que eu montei com base nas boas respostas aqui e em outros posts
Você pode definir o tempo limite do título e até dormir para agendá-lo para o último & \ n para a nova linha
Nomeie-o como popup.bat e coloque-o na pasta do caminho do Windows para funcionar globalmente no seu PC
Por exemplo
popup Line 1\nLine 2
, produzirá uma caixa pop-up de 2 linhas (digitepopup /?
para uso)Aqui está o código
fonte
ele só precisa aparecer quando estiver dentro de uma vm; portanto, tecnicamente, deve haver algum código como:
fonte