Hola
alejimram_22
Muy bien, ahora sí quedó identificado el problema!
En primer lugar el CD no va dentro del Shell, sino dentro del archivo *.BAT, porque dentro del Shell sólo van los ejecutables *.EXE
Ahora bien, para poder ejecutar el *.BAT con el Shell, hay que valerse del intérprete de comandos, es decir del CMD.EXE, por lo tanto la solución quedaría de la siguiente forma:
Código vb.net:
Ver originalUsing sw As System.IO.StreamWriter = IO.File.CreateText("C:\Facturas\ruta.bat")
sw.WriteLine("@echo on")
sw.WriteLine("CD\Facturas\cfdiapdf_base")
sw.WriteLine(s_reporte)
End Using
Shell("cmd.exe /k C:\Facturas\ruta.bat")
Fijate que el
CD va en la línea nº 3 y mirá la forma en que se llama al archivo *.BAT:
con
/k la ventana del MS-DOS (CMD.EXE) queda abierta, pero si vos no querés que quede abierta, mejor dicho que la ejecución del *.BAT sea un proceso transparente para el usuario, entonces debés colocar
/c en lugar de /k
Espero logres tu objetivo!
Saludos Cordiales!