Vielen Dank @Musashi,
die Anregungen sind eingefügt.
Gibt es noch die Möglichkeit auf eine einfache Art und Weise anzeigen zu lassen, ob kopiert wurde oder nicht? Oder die Anzahl der kopierten Dateien?
Vielen Dank @Musashi,
die Anregungen sind eingefügt.
Gibt es noch die Möglichkeit auf eine einfache Art und Weise anzeigen zu lassen, ob kopiert wurde oder nicht? Oder die Anzahl der kopierten Dateien?
So: Funktioniert!
Kompletter Code;
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <FileConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
; Variablendeklaration
;
Global $download
Global $upload
Global $rechner1
Global $rechner2
Global $rechner3
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
Local $jjjj
;==============================================================================
; Beginn des Formulars:
;
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
;
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektdown
Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektDown, "19")
GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
;
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektup
Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektUp, "19")
GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
;
; Auswahl des Aussendienstrechners
;
$rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
;
; Downloadbutton wird gesetzt
;
$download = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
;
; Uploadbutton wird gesetzt
;
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;==============================================================================
;
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
;
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
;
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
local $source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Global $jjjjdown = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
Local $prodown = GUICtrlRead($idEditProjektDown)
ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
ConsoleWrite ($source & $jjjjdown & "\" & $prodown & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjdown & "\" & $prodown & "\" & @CRLF)
DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen"), ($dest & $jjjjdown & "\" & $prodown & "\Berechnungen"), $FC_OVERWRITE)
Return
EndFunc
;
; Zweite Funktion Kopieren von Rechner auf Server
;
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
local $dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
;
Global $jjjjup = "20" & StringTrimRight(GUICtrlRead($idEditProjektUp), 4)
Local $proup = GUICtrlRead($idEditProjektUp)
ConsoleWrite ('< $Projektup = ' & $Projektup & @CRLF)
ConsoleWrite ($source & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\" & @CRLF)
DirCopy (($source & $jjjjup & "\" & $proup & "\Berechnungen"), ($dest & $jjjjup & "\" & $proup & "\Berechnungen"), $FC_OVERWRITE)
Return
EndFunc
Alles anzeigen
So,
die Pfade werden richtig angezeigt und diesselben Pfadangaben habe ich für den Kopierbefehl benutzt.
Aber er kopiert nicht.
Code nur Kopierbefehl:
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Global $jjjjdown = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
Local $prodown = GUICtrlRead($idEditProjektDown)
ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
ConsoleWrite ($source & $jjjjdown & "\" & $prodown & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjdown & "\" & $prodown & "\" & @CRLF)
DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen\*"), ($dest & $jjjjdown & "\" & $prodown & "\Berechnungen\"), $FC_OVERWRITE)
Return
EndFunc
Alles anzeigen
Moment,
hatte nicht aktualisiert und Antwort #63 nicht mitbekommen.
Danke @Musashi ,
hatte ich schon korrigiert.
Ich hatte mir ein 2. Skript erstellt, das sich ausschließlich auf den Kopierbefehl konzentriert.
So schaut es aus:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <FileConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
; Variablendeklaration
;
Global $download
Global $upload
Global $rechner1
Global $rechner2
Global $rechner3
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
Local $jjjj
;==============================================================================
; Beginn des Formulars:
;
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
;
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektdown
Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektDown, "19")
GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
;
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektup
Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektUp, "19")
GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
;
; Auswahl des Aussendienstrechners
;
$rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
;
; Downloadbutton wird gesetzt
;
$download = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
;
; Uploadbutton wird gesetzt
;
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;==============================================================================
;
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
;
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
;
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
local $source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Global $jjjjdown = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
ConsoleWrite ($source & $jjjjdown & "\" & GUICtrlRead($idEditProjektDown) & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjdown & "\" & GUICtrlRead($idEditProjektDown) & "\" & @CRLF)
; DirCopy ($source & $jjjj & "\" & $Projektdown & "\Berechnungen", $dest & $jjjj & "\" & $Projektdown & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
;
; Zweite Funktion Kopieren von Rechner auf Server
;
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
local $dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
;
Global $jjjjup = "20" & StringTrimRight(GUICtrlRead($idEditProjektUp), 4)
ConsoleWrite ('< $Projektup = ' & $Projektup & @CRLF)
ConsoleWrite ($source & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\" & @CRLF)
; DirCopy ($source & $jjjj & "\" & $Projektup & "\Berechnungen", $dest & $jjjj & "\" & $Projektup & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
Alles anzeigen
Die Pfade werden jetzt richtig herausgegeben.
Wenn ich den Backslash weg lasse, muss ich ihn aber immer mit "\" einfügen,
bei mir folgt ja Variable auf Variable...
Was ist für dich daran zu groß?
na:
Zitat......Trailing-Backslashes........
.....Konkatenierung mit neuen Pfaden......
![]()
![]()
Du solltest deine Pfade standardmäßig nicht mit einem Backslash enden lassen, die Pfade von den Makros haben auch keine Trailing-Backslashes.
Wenn du das ganze einheitlich hältst kannst du bei der Konkatenierung mit neuen Pfaden immer eins dranhängen statt erstmal zu gucken ob da eins dran ist oder nicht.
Ok
Das ist ne Nummer zu groß gerade....
Ich habe gerade herumexperimentiert und habe jetzt ein Ergebnis mit den richtigen Pfaden:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <FileConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
; Variablendeklaration
;
Global $download
Global $upload
Global $rechner1
Global $rechner2
Global $rechner3
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
Local $jjjj
;==============================================================================
; Beginn des Formulars:
;
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
;
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektdown
Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektDown, "19")
GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
;
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektup
Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektUp, "19")
GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
;
; Auswahl des Aussendienstrechners
;
$rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
;
; Downloadbutton wird gesetzt
;
$download = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
;
; Uploadbutton wird gesetzt
;
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;==============================================================================
;
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
;
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
;
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
local $source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Global $jjjjdown = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
ConsoleWrite ($source & $jjjjdown & "\" & GUICtrlRead($idEditProjektDown) & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjdown & "\" & GUICtrlRead($idEditProjektDown) & "\" & @CRLF)
; DirCopy ($source & $jjjj & "\" & $Projektdown & "\Berechnungen", $dest & $jjjj & "\" & $Projektdown & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
;
; Zweite Funktion Kopieren von Rechner auf Server
;
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
local $dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
;
Global $jjjjup = "20" & StringTrimRight(GUICtrlRead($idEditProjektUp), 4)
ConsoleWrite ('< $Projektup = ' & $Projektup & @CRLF)
ConsoleWrite ($source & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\" & @CRLF)
; DirCopy ($source & $jjjj & "\" & $Projektup & "\Berechnungen", $dest & $jjjj & "\" & $Projektup & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
Alles anzeigen
Moin!
So, nach der gestrigen Weihnachtsfeier ist mal wieder etwas Hirnschmalz gefragt.
Hier das aktuelle Skript:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <FileConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
; Variablendeklaration
;
Global $download
Global $upload
Global $rechner1
Global $rechner2
Global $rechner3
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
Local $jjjj
;==============================================================================
; Beginn des Formulars:
;
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
;
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektdown
Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektDown, "19")
GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
;
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektup
Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektUp, "19")
GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
;
; Auswahl des Aussendienstrechners
;
$rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
;
; Downloadbutton wird gesetzt
;
$download = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
;
; Uploadbutton wird gesetzt
;
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;==============================================================================
;
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
;
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
;
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
local $source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Local $jjjj = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
ConsoleWrite ($source & $jjjj & "\" & $Projektdown & "\Berechnungen" & @CRLF)
ConsoleWrite ($dest & $jjjj & "\" & $Projektdown & "\" & @CRLF)
; DirCopy ($source & $jjjj & "\" & $Projektdown & "\Berechnungen", $dest & $jjjj & "\" & $Projektdown & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
;
; Zweite Funktion Kopieren von Rechner auf Server
;
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
local $dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
;
Local $jjjj = "20" & StringTrimRight(GUICtrlRead($idEditProjektUp), 4)
; DirCopy ($source & $jjjj & "\" & $Projektup & "\Berechnungen", $dest & $jjjj & "\" & $Projektup & "\", $FC_CREATEPATH, $FC_OVERWRITE)
Return
EndFunc
Alles anzeigen
Es schaut gut aus. Bei der Eingabe eines Projektes erscheint unten folgendes:
< $Projektdown =
F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\2018d001
18\\Berechnungen
F:\TESTUMGEBUNG\RECHNER2\Daten\2018d001
18\\
Ich muss also noch an der Pfadzusammensetzung feilen....
Ich möchte es schon zu 100% verstehen.
Für nur ein fertiges Skript sind wir schon zu weit ![]()
Ja Musashi,
habe ich so eingebaut und ja
das Script ist in einer Schleife und gibt nicht den Wert in die entsprechende Variable.
Hallo,
das mit den FileConstants hatte ich schon herausgefunden.
Jetzt stellt sich mir die Frage: Wie kann der Wert in die Variable geschrieben werden?
Die Daten sollen auf jeden Fall überschrieben werden.
Die Verzeichnisse auf dem Server sind nicht diesselben.
So haben wir einen "Puffer" damit wir mit Aussendienst Daten nicht im Innendienst bearbeitete Daten überschreiben.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
; Variablendeklaration
;
Global $download
Global $upload
Global $rechner1
Global $rechner2
Global $rechner3
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
Local $jjjj
;==============================================================================
; Beginn des Formulars:
;
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
;
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektdown
Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektDown, "19")
GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
;
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
;
Global $Projektup
Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData($idEditProjektUp, "19")
GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
;
; Auswahl des Aussendienstrechners
;
$rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
;
; Downloadbutton wird gesetzt
;
$down1oad = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
;
; Uploadbutton wird gesetzt
;
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;==============================================================================
;
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
;
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
;
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
local $source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
;
Local $jjjj = "20" & StringTrimRight(GUICtrlRead($idEditProjektDown), 4)
DirCopy ( $source & $jjjj & "\" & $Projektdown & "\Berechnungen") , $dest & $jjjj & "\" & $Projektdown & "\") [$FC_CREATEPATH ,$FC_OVERWRITE]
Return
EndFunc
;
; Zweite Funktion Kopieren von Rechner auf Server
;
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
local $dest = $aSourceDest [3] [1]
;
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
;
Local $jjjj = "20" & StringTrimRight(GUICtrlRead($idEditProjektUp), 4)
DirCopy ( $source & $jjjj & "\" & $Projektup & "\Berechnungen") , $dest & $jjjj & "\" & $Projektup & "\") $FC_CREATEPATH ,$FC_OVERWRITE]
Return
EndFunc
Alles anzeigen
So, habe jetzt den Code aus Beitrag #27 übernommen, aber jetzt kommt der Fehler bei dem Kopierbefehl (Incorrect number of parameters in function call)
2.
Es ist sehr sinnvoll, GUI-Elemente mit einer ControlID zu versehen. So ist z.B. :
GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
Global $Projektdown = GUICtrlSetData(-1, "19")
falsch, da Du $Projektdown mit dem Rückgabewert von GUICtrlSetData besetzt, hier also mit 1 (da erfolgreich). Zudem bezieht sich -1 in GUICtrlSetData(-1, "19") immer auf das zuletzt erzeugte Control.
Das heißt also, das in einem Formulareingabefeld etwas eingetragen wird und der Wert der Variable ist dann 1 oder -1? Also, wird nur gecheckt, ob etwas eingetragen wird und nicht was wird an die Variable übergeben?
Kann ich die Parameter nicht so setzen das der String aus dem Eingabefeld übernommen wird?
nächste Version:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=REORG.ico
#AutoIt3Wrapper_UseX64 = N
#AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
#AutoIt3Wrapper_Res_SaveSource = N
#AutoIt3Wrapper_Res_Description = Kopiertool
#AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
#AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
; ==============================================================================
; Projekt : Kopiertool
; bearbeitet am : 19.12.2018
; ==============================================================================
; Danksagungen :
; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
; @Musashi, @BugFix, @alpines, @Code-Jack usw.
; ==============================================================================
; Changelog :
; Setzen der Pfade für Quelle und Ziel
; 1. Versuch Kopierbefehl
; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
; Wrapperanweisungen und Kommentarbereich hinzugefügt
; ==============================================================================
Global $download
Global $upload
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
; Beginn des Formulars:
$Form1_1 = GUICreate("Datenaustausch", 592, 284, 197, 145)
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
Global $Projektdown = GUICtrlSetData(-1, "19")
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
Global $Projektup = GUICtrlSetData(-1, "19")
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
; Auswahl des Aussendienstrechners
Global $rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
Global $rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
Global $rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
; Downloadbutton wird gesetzt
$down1oad = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
; Uploadbutton wird gesetzt
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
Return
$source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
Local $jjjj = "20" & StringTrimRight($Projektdown, 4)
DirCopy ( $source & $jjjj & "\" & $Projektdown & "\Berechnungen") , $dest & $jjjj & "\" & $Projektdown & "\") [$FC_CREATEPATH ,$FC_OVERWRITE]
EndFunc
; Zweite Funktion Kopieren von Rechner auf Server
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
Return
$dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
Local $jjjj = "20" & StringTrimRight($Projektdown, 4)
DirCopy ( $source & $jjjj & "\" & $Projektup & "\Berechnungen") , $dest & $jjjj & "\" & $Projektup & "\") $FC_CREATEPATH ,$FC_OVERWRITE]
EndFunc
Alles anzeigen
Ich habe den Kopierbefehl in einer anderen Datei "getestet":
Es gehört immer zum guten Ton Helfer zu nennen
, es muss aber nicht unbedingt im Fenstertitel der Anwendung geschehen
.
Außerdem bin ich nicht der einzige der bisher etwas beigetragen hat, und es werden ggf. noch andere hinzukommen. Du könntest z.B vor das Skript Wrapperanweisungen und einen Kommentarbereich setzen (inkl. Danksagungen) :
Ich weiss, in einer vorherigen Antwort ( das Kopiertool für Fotos) hatte ich das im Code schon gesehen und ich werde das jetzt auch so hier machen.
Ist das momentane Skript 'A: ein Prototyp zum Herumtesten' oder 'B: bereits die Basis für das fertige Tool ' ? Falls B: , dann hätte ich einige Vorschläge, die man bereits jetzt einbauen könnte/sollte.
Ganz klar B.
Ich hatte das ja hier herein gepostet, in der Hoffnung, das mir jemand den Code fertig schreibt.
So ist aber auch nicht schlimm, da lerne ich auch noch was dabei. Immerhin weiß ich jetzt ungefähr Arrays zu handhaben.
Ich bin immer offen für Ideen. Bisher habe ich mir immer gedacht schaue wie weit du kommst und denkst es ist richtig, poste es und warte auf Reaktionen.
Was hättest du denn für Vorschläge?
So, weiter geht es:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $download
Global $upload
Global $source
Global $dest
Global $aSourceDest = [ ["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
; Beginn des Formulars:
$Form1_1 = GUICreate("Datenaustausch von kayes & Musashi erstellt im Dezember 2018", 592, 284, 197, 145)
; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
Global $Projektdown = GUICtrlSetData(-1, "19")
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
Global $Projektup = GUICtrlSetData(-1, "19")
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
; Auswahl des Aussendienstrechners
Global $rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
Global $rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
Global $rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
; Downloadbutton wird gesetzt
$down1oad = GUICtrlCreateButton("<=", 256, 96, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
; Uploadbutton wird gesetzt
$upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $download
copydown()
Case $upload
copyup()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
; Erste Funktion Kopieren von Server auf Rechner $Projektdown
Func copydown()
;Prüfung der Radios und setzen der entsprechende Zielvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
Return
$source = $aSourceDest [3] [0]
;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
DirCopy ( $source & ($jjjj = "20" & StringTrimRight($Projektdown, 4) & "\" & $Projektdown & "\Berechnungen") , $dest & ($jjjj = "20" & StringTrimRight($Projektdown, 4) & "\" & $Projektdown & "\") [$FC_CREATEPATH ,$FC_OVERWRITE]
EndFunc
; Zweite Funktion Kopieren von Rechner auf Server
Func copyup()
;Prüfung der Radios und setzen der entsprechenden Quellvariablen
If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
Return
$dest = $aSourceDest [3] [1]
;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
DirCopy ( $source & ($jjjj = "20" & StringTrimRight($Projektup, 4) & "\" & $Projektup & "\Berechnungen") , $dest & ($jjjj = "20" & StringTrimRight($Projektup, 4) & "\" & $Projektup & "\") $FC_CREATEPATH ,$FC_OVERWRITE]
EndFunc
Alles anzeigen
Es startet, zeigt aber glaube ich, eine Fehlermeldung an: /ErrorStdOut......
![]()
ZitatNein !
Du hast wieder Fehler bei der Klammersetzung in der Zuweisung, und damit 5 Elemente :
Ja, du hast Recht, beim kopieren ist die letzte eckige Klammer nicht mitgekommen. Davor hatte ich beim kopieren deines Codes Probleme und es kam zu Fehlermeldungen.
Jetzt funktioniert es aber soweit mit deinem Code was das Array betrifft.