|
Mostrar Mensajes
|
Páginas: 1 2 [3] 4 5
|
21
|
Programación / .NET (C#, VB.NET, ASP) / Re: COMANDOS MULTIPLES - VB
|
en: 18 Junio 2014, 23:58 pm
|
Coloca un punto de interrupción en la línea del catch y fíjate en el error que arroja. Si no arroja ningún error no te queda de otra que colocar el punto de interrupción en la primera línea del bucle e ir ejecutando línea por línea para ver el error.
Benjo, realicé el paso a paso para ver el error y al parecer no termina el for porque llega hasta el punto Results = SR.ReadToEnd
y de ahi termina o sea no finaliza el for .
|
|
|
22
|
Programación / .NET (C#, VB.NET, ASP) / Re: COMANDOS MULTIPLES - VB
|
en: 18 Junio 2014, 20:38 pm
|
Estás seguro de que no se ejecuta "runpkr00.exe -d " & nombre por cada archivo? O sólo no te muestra la información en la pantalla?
Para qué es la línea "Invoke(Finished)"?
Has colocado puntos de interrupción en el bucle para comprobar que realmente hace cada iteración que debería?
Si la respuesta a la pregunta anterior es "sí", ¿se ejecuta cada iteración sin problemas o da algún error?
Se ejecuta todo bien pero no en todos los archivos que se encuentran en el directorio, o sea no me funciona el bucle. ejem: directorio archivo1.t01 ---- solo ejecuta en el primer archivo archivo2.t01 archivo3.t01 archivo4.t01 El invoke(Finished) es para que me imprima el resultado de la aplicación de los comandos.
|
|
|
24
|
Programación / .NET (C#, VB.NET, ASP) / Re: COMANDOS MULTIPLES - VB
|
en: 17 Junio 2014, 19:50 pm
|
Lex, no conocía la existencia de los métodos para redirigir la salida y la entrada de las aplicaciones.
Rochro, el método que menciona Lex te permite enviar los comandos uno a uno sin necesidad de abrir múltiples ventanas. Esta sería una opción mejor.
Chicos! Muchas gracias, ya lo adapté pero hay algo que no me sale que es que si tengo en mi directorio mas de un archivo sólo lo aplica con uno y no con todos los que están en ese directorio. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim midirectorio As String = TextBox1.Text If midirectorio = "" Then MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error) Else Try My.Computer.FileSystem.CopyFile( "C:\Program Files\convert data\runpkr00.exe", midirectorio & "\runpkr00.exe", Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End If If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then Dim CMDThread As New Threading.Thread(AddressOf CMDAutomate) CMDThread.Start() End If End Sub Private Sub CMDAutomate() Dim midirectorio As String = TextBox1.Text Dim myprocess As New Process Dim StartInfo As New System.Diagnostics.ProcessStartInfo StartInfo.FileName = "cmd" StartInfo.RedirectStandardInput = True StartInfo.RedirectStandardOutput = True StartInfo.UseShellExecute = False StartInfo.CreateNoWindow = True myprocess.StartInfo = StartInfo myprocess.Start() For Each archivo As String In My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01") Dim SR As System.IO.StreamReader = myprocess.StandardOutput Dim SW As System.IO.StreamWriter = myprocess.StandardInput Dim comando As String Dim cmdir As String Dim nombre As String nombre = My.Computer.FileSystem.GetName(archivo) cmdir = "cd " & midirectorio comando = "runpkr00.exe -d " & nombre SW.WriteLine(cmdir) SW.WriteLine(comando) Results = SR.ReadToEnd SW.Close() SR.Close() Invoke(Finished) Next End Sub
|
|
|
25
|
Programación / .NET (C#, VB.NET, ASP) / Re: COMANDOS MULTIPLES - VB
|
en: 12 Junio 2014, 21:02 pm
|
Ah, ok, ya te entendí. Para eso debes poner: Shell("cmd.exe /k" + cmdir + " & " + comando)
El símbolo "&" hasta donde yo sé, se utiliza para separar comandos en la consola de windows. Dinos si te funciona. Si me corre pero solo me ejecuta el comando "cmdir" mas no el de "comando". ¿Que puede estar mal? En si todo el codigo que tengo para el comand es: Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim midirectorio As String = TextBox1.Text If midirectorio = "" Then MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error) Else Try My.Computer.FileSystem.CopyFile( "C:\Program Files\convert data\runpkr00.exe", midirectorio & "\runpkr00.exe", Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End If If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then For Each archivo In My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01") Dim comando As String Dim cmdir As String Dim nombre As String nombre = My.Computer.FileSystem.GetName(archivo) cmdir = "cd " & midirectorio comando = "runpkr00.exe -d " & nombre & ".t01" Shell("cmd.exe /k" + cmdir + " & " + comando) Next End If End Sub
|
|
|
26
|
Programación / .NET (C#, VB.NET, ASP) / Re: COMANDOS MULTIPLES - VB
|
en: 12 Junio 2014, 19:25 pm
|
Los nombres de los archivos que te devuelve las función que los lista te da la ruta completa del archivo, no solamente el nombre. Puede ser que tu error está ahí. Para resolverlo elimina el directorio raíz del nombre del archivo.
si coloco Shell("cmd.exe /k" & cmdir) ejecuta normal, pero hasta ahí noma. Lo que quiero es que además de ejecutar ese comando también se ejecute el otro en la misma consola.
|
|
|
27
|
Programación / .NET (C#, VB.NET, ASP) / COMANDOS MULTIPLES - VB
|
en: 12 Junio 2014, 18:48 pm
|
Hola a todos. Estoy intentando correr el cmd a través de un formulario pero no puedo realizar lo de comandos multiples. If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then Dim archivo = My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01") For Each file As String In archivo 'Dim archivo = My.Computer.FileSystem.GetFileInfo(File) Dim comando As String Dim cmdir As String cmdir = "cd " & midirectorio comando = "runpkr00.exe -d " & file & ".t01" Shell("cmd.exe /k" + cmdir + comando) next end if
como resultado me da: El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos. C:\Users\rchaconr\Documents\Visual Studio 2013\Projects\CONVERSOR DATOS GPS\CONV ERSOR DATOS GPS\bin\Debug> y lo que deseo es que se ejecute > cd midirectorio c:\midirectorio>runpkr00.exe -d archivo.t01 Espero que me puedan entender y tener un poco de su ayuda. Muchas gracias
|
|
|
29
|
Programación / Programación Visual Basic / Re: AYUDA! Extraer nombre y extension de archivo
|
en: 6 Junio 2014, 23:42 pm
|
Ahora me hice mas enriedo. Cambie el código por esto: Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim midirectorio As String = TextBox1.Text Dim archivo = My.Computer.FileSystem.GetFiles(midirectorio, "*.t01") If midirectorio = "" Then MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error) Else Try My.Computer.FileSystem.CopyFile( "C:\Program Files\convert data\runpkr00.exe", midirectorio & "\runpkr00.exe", Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End If If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then For Each archivo As String 'Dim archivo = My.Computer.FileSystem.GetFileInfo(File) If LCase(archivo (File)) = LCase("t01") Then Dim comando As String comando = "runpkr00.exe -d " & archivo & ".t01" Shell("cmd.exe /k" & comando) End If Next End If End Sub
Algo de ahi me falla porque no corre. El objetivo es que a cada archivo que se encuentra en el directorio aplique el comando runpkr00 -d archivo.t01 (runpkr00 es un programita que funciona al llamarlo por comandos)
|
|
|
|
|
|
|