Datei auswählen und Batch-Datei starten

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Datei auswählen und Batch-Datei starten

    Hallo zusammen,

    ich möchte ein ganz kleines Programm erstellen, in dem ich eine Datei auswähle. Durch ein
    Fenster (ähnlich Datei --> Öffnen) . Danach möchte ich diesen Pfad gerne in einer BAT-Datei verwenden.

    BSP. Auswahl im Fenster von c:\test.csv

    Nach Klick auf den Button Start --> Start der Batchdatei mit Pfad
    C:\Statistik.exe c:\test.csv

    Ich will halt den Pfad mit einer Benutzeroberfläche auswählen, damit ich das im "Ausführen-Fenster" nicht immer mit der Hand eingeben muss,
    da die Pfade ziemlich lang werden können.

    Ben
    Für den Auswahldialog solltest du dir mal den OpenFileDialog angucken...
    das Starten geht über die Process-Klasse:

    VB.NET-Quellcode

    1. Process.Start("C:\Statistik.exe", "argumente")
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Du musst nur den Pfad der ausgewählten Datei separieren.

    VB.NET-Quellcode

    1. Using ofd As New OpenFileDialog
    2. If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
    3. Dim fi As New IO.FileInfo(ofd.FileName)
    4. Process.Start("c:\proggi.exe", fi.DirectoryName)
    5. End If
    6. End Using
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sorry aber irgendwie meckert er bei ".ShowDialog()" ...

    Was mache ich falsch...Ist dies jetzt mit Pfad und ausgewähltem Dateinamen ?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    3. Dim ofd As New OpenFileDialog
    4. Dim fi As New IO.FileInfo(ofd.FileName)
    5. If .ShowDialog() = DialogResult.OK Then
    6. Process.Start("c:\proggi.exe", fi.DirectoryName)
    7. End If
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
    10. With OpenFileDialog1
    11. .Filter = _
    12. "Excel-Mappen (*.csv)|*.csv|Alle Dateien (*.*)|*.*"
    13. .FilterIndex = 1
    14. .InitialDirectory = "C:\"
    15. .Title = "Bitte die CSV-Datei auswählen"
    16. .ShowDialog()
    17. End With
    18. End Sub
    19. End Class
    du deklarierst hier einen OpenFileDialog in einem Openfiledialog.

    mach es so:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
    2. Dim ofd As New OpenFileDialog
    3. With ofd
    4. .Filter = _
    5. "Excel-Mappen (*.csv)|*.csv|Alle Dateien (*.*)|*.*"
    6. .FilterIndex = 1
    7. .InitialDirectory = "C:\"
    8. .Title = "Bitte die CSV-Datei auswählen"
    9. End With
    10. If ofd.ShowDialog() = DialogResult.OK Then
    11. Dim fi As New IO.FileInfo(ofd.FileName)
    12. Process.Start("c:\proggi.exe", fi.DirectoryName)
    13. End If
    14. End Sub
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Du benutzt sowohl

    VB.NET-Quellcode

    1. OpenFileDialog1 As OpenFileDialog
    als auch

    VB.NET-Quellcode

    1. Dim ofd As New OpenFileDialog
    und die beiden behaken sich nun.
    Räume auf.
    Schmeiß den OpenFileDialog1 raus,

    VB.NET-Quellcode

    1. Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    2. '...
    3. End Sub
    gleich mit.
    Du hast hier genügend gute Vorlagen.
    Verstehe sie, bevor Du sie kopierst!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke euch...

    Wo es gerade ums verstehen geht. So muss ich die EXE-Datei aufrufen, damit Sie gestartet wird:

    c:\STATISTIK.exe c:\kw17.csv

    Leider funktioniert das VB-Programm nicht...

    Was wird hierdurch übergeben ? Nur der Name ?

    VB.NET-Quellcode

    1. fi.DirectoryName
    Oben in Deiner Frage war nur vom Pfad die Rede.
    fi.DirectoryName enthält nur das Verzeichnis.
    Der ganze Pfad-Datei-Name steht in ofd.FileName.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!