Função PAUSE da linha de comando não está funcionando

4
Estou experimentando um problema com um comando de arquivo de lote - quando eu executo o programa, eu tenho um comando "PAUSE" no final do arquivo de lote, no entanto, a janela de comando ainda fecha automaticamente instantaneamente, muito rápido para mim para ver os resultados. Existe outra maneira de impedir que a janela de comando seja fechada ou, de alguma forma, obter os resultados? ou seja, uma versão impressa pode ser enviada, inserida em algum lugar?

Antecedentes - Eu sei agachamento sobre linhas de comando, então, por favor, se você puder, qualquer resposta, por favor, vá até explicações de nível iniciante. Eu estou finalmente tentando determinar as versões de um arquivo do MS Project, e usei / segui as instruções deste site exatamente, no entanto, os resultados não serão exibidos para mim - a janela de comando desaparece instantaneamente:

Site da Microsoft que usei para instruções: Um método simples para determinar a versão de um arquivo mpp (arquivo de plano do MS Project)

O texto / comandos dentro do arquivo de lote:

@ECHO OFF

REM  Version.bat

ECHO Filename: %1

ECHO.

ECHO -- CHECK FOR PROJECT VERSION --

strings %1 | findstr "[0-9],.,....,...." 2>NUL

ECHO Check the following list for the first one or two digits of the string above (xx,.,....,....)

ECHO List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010)

ECHO. 

ECHO -- CHECK FOR MPP FILE VERSION --

strings %1 | findstr ".MPP" 2>NUL

ECHO Check the following list for the digit(s) at the end of the string above (...MPPxx)

ECHO List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010)

ECHO.

PAUSE
    
por user232864 21.06.2013 / 17:45

3 respostas

1

Eu suspeito que o arquivo tenha um erro. Tente chamar o arquivo em lote de uma janela de comando existente para ver a mensagem.

Provavelmente o problema é que o script está chamando um programa externo chamado "strings" e, de acordo com o documento vinculado a ele, pode ser encontrado aqui . Para que o arquivo em lote possa localizá-lo, você deve instalá-lo no diretório em que está sendo executado. Caso contrário, será necessário modificar a variável de ambiente do sistema PATH ou colocá-la em um diretório do sistema.

    
por 21.06.2013 / 18:49
1

Aguarde

seg:

PING 127.0.0.1 -n <sec> >NUL

Espere 10 seg:

PING 127.0.0.1 -n 10 >NUL

Espere 10 seg:

powershell measure-command {sleep -s 10} ^| select TotalSeconds ^| Ft -Au

Aguarde 1/4 seg ou 250 milissegundos:

powershell measure-command {sleep -m 250} ^| select TotalMilliseconds ^| Ft -Au

Pausa

powershell:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

var2:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') >NUL

var3:

powershell cmd /c pause ^| out-null

var4:

powershell [Console]::ReadKey()>NUL

var5:

powershell sleep

comando Pausa, lote / cmd:

cmd /c pause
    
por 21.06.2013 / 18:00
0

Se o comando anterior for um arquivo em lote, o restante do arquivo não será executado. tente uma chamada antes dos comandos anteriores /

    
por 24.06.2017 / 17:04