Hola a todos, quisiera apoyo con este codigo. Soy principiante en programacion y trato de entender.
La fin de este código es que tiene que ejecutar un programa (runpkr) a través de un comando por consola en todos los archivos que esten ubicados en la carpeta.
ejem:
DIRECTORIO
- archivo1.t01
- archivo2.t01
comando a ejecutar por consola en cada archivo: runpkr00 -d archivo1.t01
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
If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then
For Each Archivo As String In My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01")
Console.WriteLine("runpkr00.exe -d" & Archivo)
Next
End If
End If
Se que algo esta mal. Quisiera su apoyo.
Gracias. =)
Porque sabes? Que error te muestra?
No me sale error. Sólo que no llega a ejecutarse el for.
If My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe") Then
Supongo que será esa condición.
"\runpkr00.exe"
Pusiste \runpkr...
el \r se interpreta como un caracter especial. Para poner una '\' dentro de un string, ponla 2 veces.
"\\runpkr00.exe"
Si no me equivoco, debería ir así.
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)
Parece que ni leíste mi mensaje ·_·
Cita de: ivancea96 en 7 Junio 2014, 00:09 AM
Parece que ni leíste mi mensaje ·_·
Perdón, si lo leiii!! .. hice lo que me dijiste y tampoco me funciono.
Busca mediante un log, por ejemplo, los resultados de:
My.Computer.FileSystem.FileExists(midirectorio & "\runpkr00.exe")
Asegúrate de que retorna TRUE
midirectorio & "\\runpkr00.exe"
Asegúrate de que está todo bien escrito y correcto.