Datei kopieren mit Dateiauswahl ähnlich FileSelectFolder

  • Hallo,

    ich müsste ein Script schreiben, das folgendes tut:
    - der Anwender klickt auf einen Button oder dergleichen und ein Fenster geht auf, wie bei "FileSelect Folder" und dann kann der User durch die Verzeichnisse und Laufwerke navigieren um eine einzelne Datei auszuwählen. Diese einzelne Datei soll dann auf einen anderen Rechner kopiert werden. Das Zielverzeichnis ist bekannt, jedoch nicht das Quellverzeichnis und der Dateiname.
    Ich habe bisher keine Möglichkeit gefunden, wie ich das mit AutoIt machen kann, hat einer von Euch eine Idee?
    Oder geht das so ohne weiteres gar nicht in / mit AutoIt?


    Danke schon mal.


    Grüße
    skywalker

    Einmal editiert, zuletzt von skywalker (27. März 2009 um 11:53)

  • Hi,
    aber sicher geht sowas.
    Schau dir in der Hilfe mal die Funktionen

    FileOpenDialog (damit hast du das Quellberzeichnis und den Dateinamen)

    Wie du die Datei auf einen anderen Rechner kopieren kannst, kann ich dir leider nicht sagen.
    Geht es sicher.

    Schreib einfach mal dein Script und zeige es hier.
    Dann wird dir sicher weitergeholfen :D

  • Hey,
    Super. Vielen Dank für die schnelle Antwort. Ich werde es mir anschauen.
    Die Datei über das Netzwerk zu kopieren ist nicht schwierig, ich mappe mir ein Laufwerk und kopiere die Datei. Anschließend trenne ich
    die Verbindung wieder. Ich werde das Script dann hier im Thread posten.


    regards
    skywalker

  • Für alle die es interessiert, hier mal das Script:

    Spoiler anzeigen
    [autoit]


    ;Variablen deklarieren
    Dim $FILE
    Dim $FILEANSWER
    Dim $START
    Dim $FILECOPY
    Dim $FILETYP
    Dim $DESTINATION = "\\Rechnername\C$\Temp"
    DIM $DRIVE = "Z:"

    [/autoit] [autoit][/autoit] [autoit]

    ;Handelt es sich um eine Word-Datei?
    $FILETYP = MsgBox(36,"Abfrage Dateityp","Soll eine Word-Datei gestartet werden?")
    Select
    Case $FILETYP = 6 ;Yes, es handelt sich um eine Word-Datei
    ;Abfrage ob das Script gestartet werden soll
    $START = MsgBox(36,"Präsentation starten","Bitte im nächsten Fenster die zu kopierende und zu startende Datei auswählen." & @CRLF & "Möchten Sie fortfahren?")
    Select
    Case $START = 7 ;No, Script wird beendet
    Exit
    Case $START = 6 ;Yes, Script wird fortgesetzt
    ;Dateiauswahl
    MsgBox(0,"Dateiauswahl","Bitte wählen Sie die Datei aus")
    $FILE = FileOpenDialog ( "Hier steht der Titel", "C:\Temp\Praesentation\", "Word-Dokumente (*.doc)" )
    $FILEANSWER = MsgBox(36,"Dateibestätigung" ,"Handelt es sich um diese Datei?" & @CRLF & $FILE)
    If $FILEANSWER = 6 Then
    SetError (0)
    DriveMapAdd( $DRIVE, $DESTINATION )
    Select
    Case @error > 0
    MsgBox(48,"Fehler","Es konnte keine Verbindung zum Präsentationsrechner hergestellt werden.")
    Exit
    Case @error <= 0
    ;Datei kopieren
    FileCopy($FILE, $DESTINATION, 1)
    ;Datei starten
    ShellExecute("vlc.exe")
    ;Netzlaufwerk trennen
    DriveMapDel( $DRIVE )
    EndSelect
    Else
    MsgBox(0, "Auswahlfehler", "Das Script wird beendet")
    Exit
    EndIf
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    Case $FILETYP = 7 ;No, es handelt sich nicht um keine Word-Datei

    $FILETYP = MsgBox(36,"Abfrage Dateityp","Soll eine Excel-Datei gestartet werden?")
    Select
    Case $FILETYP = 6 ;Yes, es handelt sich um eine Excel-Datei
    ;Abfrage ob das Script gestartet werden soll
    $START = MsgBox(36,"Präsentation starten","Bitte im nächsten Fenster die zu kopierende und zu startende Datei auswählen." & @CRLF & "Möchten Sie fortfahren?")
    Select
    Case $START = 7
    Exit
    Case $START = 6
    MsgBox(0,"Dateiauswahl","Bitte wählen Sie die Datei aus")
    $FILE = FileOpenDialog ( "Hier steht der Titel", "C:\Temp\Praesentation\", "Excel-Dokumente (*.xls)" )
    $FILEANSWER = MsgBox(36,"Dateibestätigung" ,"Handelt es sich um diese Datei?" & @CRLF & $FILE)
    If $FILEANSWER = 6 Then
    SetError (0)
    DriveMapAdd( $DRIVE, $DESTINATION )
    Select
    Case @error > 0
    MsgBox(48,"Fehler","Es konnte keine Verbindung zum Präsentationsrechner hergestellt werden.")
    Exit
    Case @error <= 0
    ;Datei kopieren
    FileCopy($FILE, $DESTINATION, 1)
    ;Datei starten
    ;
    ;Netzlaufwerk trennen
    DriveMapDel( $DRIVE )
    EndSelect
    Else
    MsgBox(0, "Auswahlfehler", "Das Script wird beendet")
    Exit
    EndIf
    EndSelect

    Case $FILETYP = 7 ;No
    $FILETYP = MsgBox(36,"Abfrage Dateityp","Soll eine PowerPoint-Datei gestartet werden?")
    Select
    Case $FILETYP = 6 ;Yes
    ;Script hier
    $START = MsgBox(36,"Präsentation starten","Bitte im nächsten Fenster die zu kopierende und zu startende Datei auswählen." & @CRLF & "Möchten Sie fortfahren?")
    Select
    Case $START = 7
    Exit
    Case $START = 6
    MsgBox(0,"Dateiauswahl","Bitte wählen Sie die Datei aus")
    $FILE = FileOpenDialog ( "Hier steht der Titel", "C:\Temp\Praesentation\", "PowerPoint-Dokumente (*.ppt)" )
    $FILEANSWER = MsgBox(36,"Dateibestätigung" ,"Handelt es sich um diese Datei?" & @CRLF & $FILE)
    If $FILEANSWER = 6 Then
    SetError (0)
    DriveMapAdd( $DRIVE, $DESTINATION )
    Select
    Case @error > 0
    MsgBox(48,"Fehler","Es konnte keine Verbindung zum Präsentationsrechner hergestellt werden.")
    Exit
    Case @error <= 0
    ;Datei kopieren
    FileCopy($FILE, $DESTINATION, 1)
    ;Datei starten
    ;
    ;Netzlaufwerk trennen
    DriveMapDel( $DRIVE )
    EndSelect
    Else
    MsgBox(0, "Auswahlfehler", "Das Script wird beendet")
    Exit
    EndIf
    EndSelect
    Case $FILETYP = 7 ;No
    MsgBox(48, "Ende", "Das Script wird beendet")
    Exit
    EndSelect
    EndSelect
    EndSelect

    [/autoit]

    grüße