Visual Basic - vb + ms-dos

Life is soft - evento anual de software empresarial
 
Vista:

vb + ms-dos

Publicado por anna (2 intervenciones) el 03/05/2006 18:11:37
Hola!

Cómo puedo pasar variables de VB introducidas por el usuario a MS-DOS?
Existe un .bat con un sql y se tiene que cambiar el texto del .bat con las variables introducidas desde vb.

Alguien sabe cómo hacerlo??

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel

RE:vb + ms-dos

Publicado por Daniel (360 intervenciones) el 03/05/2006 19:46:44
Cuando necesito pasar una sentencia a ms.dos lo hago asi

Libre = Freefile
Open Archivo.bat for output as #Libre
Print #Libre, "Scandisk/all
close
Shell "Archivo.bat", vbnormalfocus
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:vb + ms-dos

Publicado por Matías Freire (421 intervenciones) el 03/05/2006 21:54:40
Hola anna...

mira...
Lo que deberías hacer, es hacer una copia del archivo .bat poniendole como nombre (por ejemlpo) "PlantillaSQL.bat". Una vez hecho esto, editas este archivo con el bloc de notas, y reemplazar todos aquellos datos que pudieran variar dentro del SQL por un nombre descriptivocolocado (por ejemplo) entre llaves. Luego eliminas el archivo .bat original.

Una vez hecho esto, desde VB, cuando el usuario te ha ingresado los valores, abres el archivo PlantillaSQL.bat, buscas las cadenas encerradas entre llaves, y las reemplazas por las variables que te dio el usuario. Grabas esto en un archivo con el nombre original.bat, y éste es el que ejecutas.

Te voy a dar un ejemplo:

El archivo que tienes ahora se llama SQL.bat y contiene:

"SELECT * FROM Pedidos WHERE Codigo = 13456"

Deberías crear un archivo que se llame PlantillaSQL.bat y ponerle:

"SELECT * FROM Pedidos WHERE Codigo = {CODIGO_PEDIDO}"

Eliminas el archivo sql.bat

desde visual haces (suponiendo que el archivo planilla está en el mismo directorio de la aplicacion):

private sub EjecutarSQL (byval sNumPedido as string)
Dim iArchivoLibre as Integer
Dim sRutaPlantilla as String
Dim sContenido as String

sRutaPlantilla = App.Path & "\PlanillaSQL.bat"
sRutaBat = App.Path & "\SQL.bat"
iArchivoLibre = FreeFile

'Abres la plantilla para leerla
Open sRutaPlantilla For Input As #1

'creas el bat para escribir en el
Open sRutaBat For Output As #2
Lees la plantilla hasta el final (por si tiene varias lineas)
Do while Not EOF(1)
'lees el primer renglon y lo guardas en contenido
Input #1, sContenido
'Esto busca la cadena entre llaves y la rremplaza por snumpedido
' si no la encuentra no hace nada
sContenido = Replace(SContenido, "{CODIGO_PEDIDO}",
sNumPedido

'escribes en el archivo bat final la linea ya corregida (con el dato)
Print #2, sContenido
Loop
Close #1
Close #2

'si tuvieras que ejecutar el bat haces
ShellExecute sRutaBat
End Sub

Espero que sea esto lo que necesitabas. Sino cualquier cosa enviame un mail y vemos como lo hacemos

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar