1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Dreamworker

Beiträge von Dreamworker

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 20. August 2017 um 20:43

    Hallo zusammen,
    ich habe mal versucht, klappt leider nicht.

    $arSearch=_findFilesWithString("s:\2017",".nef") oder auch $arSearch=_findFilesWithString("s:\2017",".nef") zu nutzen , beides geht nicht.

    Das Programm hat ja folgende Funktion, es liest die Bildnamen ein die mit einem Stern gekennzeichnet sind aus der Datei Test.csv.
    Danach kopiert er die Dateien .

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 16. August 2017 um 21:23

    Hallo zusammen,

    jetzt nach über einem Jahr ist mir ein kleiner Fehler aufgefallen.

    Sind die Dateinamen in dieser Form 2017-SUN-10743.nef werden sie gefunden und kopiert, jedoch an einer Kamera kann ich nur maximal 8 Stellen angeben so wie hier _SUN1409.nef
    Wie kann ich die Suche verändern , dass beide Arten von Namen gefunden und kopiert werden ?

    Ich denke diese Zeile muß ich anpassen, habe schon einiges versucht will aber nicht klappen.

    $result=StringRegExp($arTmpFiles[$i],"\d*"&$sDelimeter&"(?:.*?)"&$sDelimeter&"(.*?)"&$sDelimeter&"(\d*)"&$sDelimeter,1);Den Namen und den Stern auslesen

    Oder liegt es an dieser Zeile :

    $arSearch=_findFilesWithString("s:\2017","\d{4}-SUN-(.*nef)")

    Ich hoffe Ihr könnt mir helfen. Dankeschön


    Hier das ganze Programm:

    #include <file.au3>
    #include <array.au3> ; wird nur für _Arraydisplay am Ende gebraucht! kann dann eventuell entfernt werden
    $file = "C:\Fotoauswahl\test.csv" ; einzulesende csv Datei
    $arTmpFiles=FileReadToArray($file);Datei einlesen
    $input1 = InputBox ("Model Name","Bitte Modelname eingeben")
    $Datum = @YEAR &"-"& @MON &"-"& @MDAY
    $Verzeichnis = "\\192.168.178.200\zb-models\" & $Datum &" "& $input1
    $Verzeichnis2 = $Verzeichnis & "\" & $Datum &" "& $input1 &" bearbeitet"
    ;$input1=FileSelectFolder( "Bitte Vereichnis auswählen", "\\192.168.178.200\zb-models")
    DirCreate ($Verzeichnis2)

    local $arFiles[UBound($arTmpFiles)],$count,$sDelimeter=";"
    for $i=0 to UBound($arTmpFiles)-1 step 1;Durch alles einträge laufen
    $result=StringRegExp($arTmpFiles[$i],"\d*"&$sDelimeter&"(?:.*?)"&$sDelimeter&"(.*?)"&$sDelimeter&"(\d*)"&$sDelimeter,1);Den Namen und den Stern auslesen
    ;$result=StringRegExp($arTmpFiles[$i],"\d*"&$sDelimeter&"(?:.*?)"&$sDelimeter&"(\d*)"&$sDelimeter,1);Den Namen und den Stern auslesen
    if Not @error then;Wenn gefunden
    if $result[1]="1" then;Wenn Sterne=1
    $arFiles[$count]=$result[0];eintragen
    $count+=1;counter ist nur, um am ende die größe festzulegen und nicht funde somit zu filtern
    endif
    endif
    next
    ReDim $arFiles[$count]

    $arSearch=_findFilesWithString("s:\2017","\d{4}-SUN-(.*nef)")
    ;_ArrayDisplay($arFiles)
    ;_ArrayDisplay($arSearch)


    for $i=0 to UBound($arFiles)-1 step 1;arFiles durchlaufen
    $index=_ArraySearch($arSearch,$arFiles[$i]&".nef");Nach dem Dateinamen suchen
    if $index>-1 then;Wenn gefunden ausgeben
    ConsoleWrite($arFiles[$i]&" -> "&$arSearch[$index][0]&@crlf)
    FileCopy($arSearch[$index][0],$Verzeichnis&"\"&$arSearch[$index][1])

    ;MsgBox(0,"Ergebnis", $Verzeichnis2 & " Punkte")

    endif
    next
    Func _findFilesWithString($path,$pattern)
    ;ConsoleWrite("Searching: "&$path&@crlf)
    $hSearch=FileFindFirstFile($path&"\*");Suche starten
    local $arResult[0][2];Array erstellen
    if $hSearch<>-1 then
    While 1
    $sFileName = FileFindNextFile($hSearch);Datei suchen
    If @error Then ExitLoop
    if @extended then
    $arTmp=_findFilesWithString($path&"\"&$sFileName,$pattern);Unterordner durchsuchen
    if UBound($arTmp)>0 then;Bei Fund
    ReDim $arResult[UBound($arResult)+UBound($arTmp)][2];Array vergrößern
    for $i=0 to UBound($arTmp)-1 step 1;und die Gefudnenen Dateien hinzufügen
    $arResult[UBound($arResult)+$i-UBound($arTmp)][0]=$arTmp[$i][0]
    $arResult[UBound($arResult)+$i-UBound($arTmp)][1]=$arTmp[$i][1]
    next
    endif
    else
    ;if StringRegExp($path&"\"&$sFileName,$pattern,0) then;Dafür den gesamten Pfad im RegExp beachten
    if StringRegExp($sFileName,$pattern,0) then;Wenn die Datei dem Pattern entspricht
    ReDim $arResult[UBound($arResult)+1][2];Array vergrößern
    $arResult[UBound($arResult)-1][0]=$path&"\"&$sFileName;Datei reinschreiben
    $arResult[UBound($arResult)-1][1]=$sFileName;Datei reinschreiben
    endif
    endif
    WEnd
    endif
    return $arResult

    EndFunc
    MsgBox( 0, "Dateien kopieren","Kopieren abgeschlossen")

  • Internetexplorer minimieren für 1Minute dann 1Minute auf Vollbild dann wieder 1Minute minimieren in schleife

    • Dreamworker
    • 6. März 2017 um 07:57

    Hallo zusammen, super Infos, ich war einige Tage unterwegs und werde es mal in den nächsten Tagen weiter testen.

  • Hintergrund des Programm

    • Dreamworker
    • 3. März 2017 um 11:29

    Ich möchte gern auf einem Überwachungsbildschirm im Wechsel mal den Iexplorer sehen und mal ein Programm.

  • Internetexplorer minimieren für 1Minute dann 1Minute auf Vollbild dann wieder 1Minute minimieren in schleife

    • Dreamworker
    • 2. März 2017 um 21:44

    Hallo zusammen, ich habe auf einem Bildschirm ein Programm sowie einen Internet Explorer offen.

    Jedoch ich möchte das Programm im Vollbild offen lassen und davor 1Minute den Internetexplorer anzuzeigen, dann ihn wieder zu minimieren um mein Programm für 1 Minute zu sehen , so dass ich immer wieder das Programm 1 Minute sehe und dann 1 Minute den Internetexplorer .

    Ich habe versucht dises Script umzubasteln. Jedoch kann ich damit nicht den Internetexplorer ansprechen um ihn 1Minute anzuzeigen und dann zu minimieren und das im Wechsel bis ich das Programm schließe.

    AutoIt
    Func Example(); Run Notepad
    	Run("notepad.exe"); Wait 10 seconds for the Notepad window to appear.
    	Local $hWnd = WinWait("[CLASS:Notepad]", "", 10); Set the state of the Notepad window to "hide".
    	WinSetState($hWnd, "", @SW_HIDE); Wait for 2 seconds.
    	Sleep(2000); Set the state of the Notepad window to "show".
    	WinSetState($hWnd, "", @SW_SHOW); Wait for 2 seconds.
    	Sleep(2000); Close the Notepad window using the handle returned by WinWait.
    	WinClose($hWnd)
    EndFunc;==>Example
  • Verzeichnisse und Unterverzeichnisse aus Variablen

    • Dreamworker
    • 15. Dezember 2016 um 19:42

    Ja damit wurde es etwas klarer, ich muss halt einen Pfad setzen, ich dachte man kann es zusammensetzen.
    Wichtig war der rot markierte Punkt.
    Diese Funktion erstellt auch alle übergeordneten Verzeichnisse, die in der Variable "path" enthalten sind, wenn sie noch nicht existieren."

    Jetzt klappt es danke

  • Verzeichnisse und Unterverzeichnisse aus Variablen

    • Dreamworker
    • 15. Dezember 2016 um 18:20

    Hallo ich möchte gerne ein Verzeichnis mit Unterverzeichnis erstellen

    Kann ich es auch in einem Schritt machen ?

    DirCreate ($Verzeichnis"\"$Verzeichnis & "bearbeitet" ) Das Verzeichnis soll nachher so etwa aussehen testordner\testordner bearbeitet

    geht es in einem Schritt ?

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 13. Dezember 2016 um 21:02

    Habe den Fehler gefunden, war aber nur in Notepad sichtbar, die Trennzeichen waren unterschiedlich.

    Kleiner Fehler große Wirkung ...

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 13. Dezember 2016 um 20:37

    Scheint doch noch ein kleiner Bug drin zu sein, wenn der Browser der die CSV Datei erstellt englisch ist z.b. vom Handy
    Dann sieht die CSV auch anders aus. Dann klappt es irgendwie nicht.

    Ich denke es liegt an der Zeile :

    $result=StringRegExp($arTmpFiles[$i],"\d*"&$sDelimeter&"(?:.*?)"&$sDelimeter&"(.*?)"&$sDelimeter&"(\d*)"&$sDelimeter,1);Den Namen und den Stern auslesen

    Habe versucht sie zu verstehen aber da bin ich noch zu sehr Anfänger..

    englische Version

    Number Gallery Filename Stars Red Green Blue Purple Black Comments
    1 zur Auswahl 2016-SUN-03758 1 0 0 0 0 0

    deutsche Version

    Nummer Galerie Dateiname Sterne Rot Grün Blau Lila Schwarz Bemerkungen
    1 zur Auswahl 2016-SUN-03938 1 0 0 0 0 0


    Ich finde nur nicht den Unterschied bei der Abfrage auf Stern.

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 13. Dezember 2016 um 17:36

    Hallo zusammen, super Dank an alle die mich unterstützt haben.

    Es läuft jetzt super.
    Vielen Dank für den Tipp Kanashius mit Fileselectfolder.

    Dankeeeeeeeeeee :klatschen::klatschen::klatschen::klatschen::klatschen::klatschen::klatschen::klatschen::klatschen:

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 20:24

    Hallo zusammen, bin schon super weit gekommen, die Datei wird eingelesen und auch alle Dateien mit Stern richtig ausgewertet.

    Er findet sogar die Pfade der Dateien, diese werden in der Console ausgegeben.
    2016-SUN-03939 -> s:\2016\2016-12-05\2016-SUN-03939.nef
    2016-SUN-03940 -> s:\2016\2016-12-05\2016-SUN-03940.nef
    2016-SUN-03960 -> s:\2016\2016-12-05\2016-SUN-03960.nef
    2016-SUN-03962 -> s:\2016\2016-12-05\2016-SUN-03962.nef

    wie bekomme ich es hin, das Autoit genau die gefunden Übereinstimmungen kopiert?

    Hier meine Idee dazu, die aber so nicht funktioniert, da ich nicht weiß wie ich die Consolenergebnisse abfrage .

    $input1 = InputBox ("Zielpfad eingeben")

    $gefundeneDateien = ???? meine gefunden Dateien??? ( oben z.b. s:\2016\2016-12-05\2016-SUN-03939.nef)
    ;Dateien auf Server sichern.
    DirCopy("$gefundeneDateien" "$input1")

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 12:00

    Ist es richtig wenn ich die Namen mit folgenden werten raussuche ?

    $result=StringRegExp($arTmpFiles[$i],"\SUN*"&$sDelimeter&"(?:.*?)"&$sDelimeter&"(.*?)"&$sDelimeter&"(\d*)"&$sDelimeter,1);Den Namen und den Stern auslesen

    Denn irgenwie findet er die Dateinamen nicht.

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 11:09

    Wow Hammer, das schau ich mir heute Abend in Ruhe mal an

    Danke erstmal

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 09:42

    Die CSV ist immer gleich.
    Ich brauche genau immer die Datei, die bei Sterne eine 1 stehen hat.

    Nummer Galerie Dateiname Sterne Rot Grün Blau Lila Schwarz Bemerkungen
    1 zur Auswahl 2016-SUN-04050 1 0 0 0 0 0
    2 zur Auswahl 2016-SUN-04051 0 0 0 0 0 0
    3 zur Auswahl 2016-SUN-04052 0 0 0 0 0 0
    4 zur Auswahl 2016-SUN-04053 0 0 0 0 0 0
    5 zur Auswahl 2016-SUN-04054 1 0 0 0 0 0
    6 zur Auswahl 2016-SUN-04055 0 0 0 0 0 0
    7 zur Auswahl 2016-SUN-04056 0 0 0 0 0 0
    8 zur Auswahl 2016-SUN-04057 1 0 0 0 0 0
    9 zur Auswahl 2016-SUN-04058 0 0 0 0 0 0
  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 09:25

    Hey Bitnugger, genau so habe ich es vor, ich lese die CSV ein habe dann genau alle Bildernamen.
    Dann suche ich nach den Bildernamen und erzeuge ein Array ( alle Bilder liegen auf einer Partition)
    Danach muss ich nur noch einen Kopierjob starten, der es zulässt, dass ich das Ziel des Kopierjobs angebe. ( Ziel ist ein einziger Ordner)

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 09:19

    Vielen Dank Autoiter,

    ich muß mich mal heute Abend in die Array Thematik knien, um mal zu sehen wie und was in so einem Array ankommt, damit ich es besser verstehe.

    Könntest Du mir vielleicht kurz zwei Zeilen schreiben wie ich die csv einlese und dann danach suche.

    Mein Ansatz :

    • #include <file.au3>
    • #include <array.au3> ; wird nur für _Arraydisplay am Ende gebraucht! kann dann eventuell entfernt werden
    • $file = "C:\test.csv" ; einzulesende csv Datei

    und dann ?

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 08:48

    Upps jetzt bin ich überfordert.

    Ich denke als erstes so etwas
    Und die Filterdatei enthält die Info IMG, denn alle Dateien enthalten im Namen IMG.


    • #include <file.au3>
    • #include <array.au3> ; wird nur für _Arraydisplay am Ende gebraucht! kann dann eventuell entfernt werden
    • Global $arresult [1], $ardatei, $arfilter
    • $file = "C:\test.csv" ; einzulesende csv Datei
    • $filter = "C:\meinfilter.txt" ; einzulesende Filterdatei


    Danach dann FilelisttoArrayRec ? oder ArrayFindAll

    Sorry mit den Array bin ich nicht so fit

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 08:28

    Ich denke das Einlesen der csv bekomme ich vielleicht hin.

    Mir ist nur nicht ganz klar wie ich FilelisttoArrayRec einsetzen kann.

    ich denke es wird dann im Array sowas drin stehen wie:

    c:\unterordner1\unterordner2\img1.jpg
    c:\unterordner2\img23.jpg
    c:\unterordner\unterordner\unterordner\img3.jpg

    Wie kann ich mit dem Inhalt weiter arbeiten?

  • Ich benötige einen Denkanstoss beim kopieren von Dateien

    • Dreamworker
    • 12. Dezember 2016 um 08:01

    Hallo zusammen, meine Idee /Problem..

    Ich würde gerne eine csv Datei einlesen, der Inhalt der Datei ist eine Auswahl an Fotos zb. img01.jpg , img02.jpg, img121.jpg .
    Diese Dateien würde ich gerne von einer Freigabe kopieren zu einem Ort den ich in meinem Script angebe.

    Jetzt das Problem : Die Datei img01.jpg ist vielleicht in einem anderen Verzeichnis wie die Datei img121.jpg

    Ich müsste wohl erst eine Suche machen, wo ist die Datei / sind die Dateien, dann die Pfade einlesen und dann kopieren zu einen gemeinsamen Pfad den ich dann in Script als Eingabefenster eintrage.

    Nur wieeeeee?
    Für Hilfe wäre ich sehr dankbar, da ich bisher nur kleine Scripts geschrieben habe und mich mit Array zum kopieren nicht so auskenne.
    Danke

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™