vbs predefinidas para mundo hola hacer funciones ejemplos ejecutar descargar como codigos bromas bat loops vbscript readfile

loops - predefinidas - hola mundo en vbscript



¿Cómo leo un archivo línea por línea en VB Script? (2)

Tengo lo siguiente para leer un archivo línea por línea:

wscript.echo "BEGIN" filePath = WScript.Arguments(0) filePath = "C:/Temp/vblist.txt" Set ObjFso = CreateObject("Scripting.FileSystemObject") Set ObjFile = ObjFso.OpenTextFile(filePath) StrData = ObjFile.ReadLine wscript.echo "END OF FIRST PART" Do Until StrData = EOF(ObjFile.ReadLine) wscript.echo StrData StrData = ObjFile.ReadLine Loop wscript.echo "END"

La función EOF() no parece funcionar:

C:/Users/EGr/Documents/Scripts/VB>cscript testloop.vbs ArgVal Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. BEGIN END OF FIRST PART C:/Users/EGr/Documents/Scripts/VB/testloop.vbs(11, 1) Microsoft VBScript runti me error: Type mismatch: ''EOF''

No he programado en VB antes, pero estoy tratando de resolver los bucles para poder modificar un script de VB que me haya sido entregado. Quiero leer un archivo línea por línea y hacer algo con cada línea. Si cambio el ciclo Do Until a Do Until StrData = EOF , funciona pero arroja un error cuando llega al final del archivo:

C:/Users/EGr/Documents/Scripts/VB>cscript testloop.vbs ThisRANDOMValue Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. BEGIN 1 END OF FIRST PART host1 host2 host3 C:/Users/EGr/Documents/Scripts/VB/testloop.vbs(13, 2) Microsoft VBScript runti me error: Input past end of file

Siento que probablemente haya una solución fácil, pero no he podido encontrarla. He intentado algunas otras soluciones que he encontrado en línea, pero no he llegado tan cerca como lo anterior.


En caso de duda, lea la documentación :

filename = "C:/Temp/vblist.txt" Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(filename) Do Until f.AtEndOfStream WScript.Echo f.ReadLine Loop f.Close


Si alguien como yo está buscando leer solo una línea específica, por ejemplo, solo la línea 18 aquí es el código:

filename = "C:/log.log" Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(filename) For i = 1 to 17 f.ReadLine Next strLine = f.ReadLine Wscript.Echo strLine f.Close