não pode executar vbscript a partir de cmd

1

Eu tenho um script para fazer ping em servidores que eu usei para executar indo para o caminho onde meu arquivo está localizado no CMD e digite a seguinte linha

FileName ip logname.log

este é o script que eu corro

hostIp      = wscript.arguments(0)
logfilename = wscript.arguments(1)
Set fso     = CreateObject("Scripting.FileSystemObject")
Set Shell   = CreateObject("Wscript.Shell")
' OpenTextFile Method requires a Const value
' (Over)Write = 2  Append = 8   
Set logfile = fso.OpenTextFile(logfilename, 8, True)
shellstring = "%comspec% /c ping -t -f -l 32 -w 1000 " & hostIP
Set oExec   = Shell.Exec(shellstring)
wscript.echo "Ping Error log With Timestamp - Ctrl + C to halt"
Do While oExec.StdOut.AtEndOfStream <> True
      pingline = Date & " " & Time & " " & oExec.StdOut.ReadLine
'      If InStr(pingline, "TTL=") = 0 Then
         logfile.WriteLine(pingline)
'      End If
Loop

no entanto, ele não funciona mais sempre que eu o executo agora ele abre o arquivo em vez de executá-lo. alguma idéia sobre como corrigir esse problema?

    
por Rildo Gomez 12.10.2017 / 06:10

1 resposta

0

Se você usar a sintaxe:

Filename ip logname.log

então a ação será derivada do registro.

No meu computador, tenho o seguinte.

  1. Computador \ HKEY_CLASSES_ROOT.vbs
    • (Padrão) REG_SZ VBSFile
  2. Computador \ HKEY_CLASSES_ROOT \ VBSFile \ Shell \ Open \ Command
    • (Padrão) REG_EXPAND_SZ "% SystemRoot% \ System32 \ WScript.exe" "% 1"% *

Se você não quiser deixá-lo ao acaso, terá que incluir explicitamente o WScript ou o CScript na sua linha de comando, por exemplo

CScript Filename ip logname.log

A diferença mais notável entre o CScript e o WScript é o comportamento de WScript.Echo . Com o CScript, o texto é ecoado para stdout e não é bloqueado. Com o WScript, o texto é exibido em uma caixa de diálogo restrita e está bloqueando. O primeiro é geralmente preferido se (1) você está invocando o script a partir de um Prompt de Comando, (2) você está invocando o script a partir de uma tarefa agendada.

    
por 12.10.2017 / 06:46