Obtener salida de línea de comando en VBScript (sin escribir en archivos)
-
28-10-2019 - |
Pregunta
Estoy usando VBScript, y mi objetivo es poder sustituir una carta de unidad por una ruta de mi elección. Necesito la unidad D, y si no está disponible, necesito verificar si ya está asignado al lugar correcto; Luego notifique al usuario si no lo es. Encontré esto: http://technet.microsoft.com/en-us/library/ee156605.aspx Y estoy tratando de adaptar su segundo ejemplo:
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("cmd /c ping -n 3 -w 1000 157.59.0.1")
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadLine()
If Instr(strText, "Reply") > 0 Then
Wscript.Echo "Reply received."
Exit Do
End If
Loop
(mis adaptaciones):
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("cmd /c substr")
strText = ""
Do While Not objExecObject.StdOut.AtEndOfStream
strText = strText & objExecObject.StdOut.ReadLine()
Loop
Wscript.Echo strText
Entonces probablemente buscaré la cadena que diga dónde se asigna la unidad D. También he probado objShell.Exec("subst")
, pero todavía no obtengo ninguna salida. ¿Alguien tiene alguna idea sobre lo que podría estar haciendo mal? ¿O hay una mejor manera de contar sobre las asignaciones de transmisión? Gracias,
213897
Solución
Tu script no funciona porque has mordido el nombre del comando, es subst
, no substr
.