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. aIT-newUSER

Beiträge von aIT-newUSER

  • AutoIT Script mit Command-Line Parameters

    • aIT-newUSER
    • 19. Mai 2011 um 09:01

    Hallo Gleichgesinnte,

    ich habe mal wieder eine kleine Frage in der Hoffnung dass jemand von euch da draussen mehr weis als ich ?

    Ich möchte ein Programm schreiben, dem ich "command-line parameters" mitgeben möchte. Folgend ist schon mal das
    Gerüst und es funktioniert auch schon soweit:

    --- copy & paste ---

    If $CmdLine[0] = 0 Then
    MAIN()
    Exit
    Endif

    If StringInStr($CmdLine[1],"/path=",0) Then
    ;ConsoleWrite($CmdLine[1])
    $CmdL=StringSplit($CmdLine[1],"=")
    If StringLen($CmdL[2])>0 Then
    MsgBox(0, "", $CmdL[2])
    Else
    HELPME()
    Endif
    Else
    HELPME()
    Endif

    func MAIN()
    MsgBox(0, "MAIN", "ok, its working - no paramaters given")
    Exit
    EndFunc

    func HELPME()
    MsgBox(0, "tool.exe", "available parameters: /path=YOURPATH")
    Exit
    EndFunc

    --- copy & paste ---

    Nun habe ich das Problem, dass ich bei "func MAIN()" natürlich keine MsgBox ausgeben möchte, sondern weitere Befehle und Abfragen durchführen möchte, welche aber in weiteren "Func" -> "EndFunc" eingebettet sind. z.B.

    --- copy & paste ---

    #include <Array.au3>

    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc ;==>_RecursiveFileListToArray

    --- copy & paste ---

    Kann mir jemand sagen, wie ich Funktionen in Funktionen packen kann ohne in Fehler zu laufen :O ?

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • aIT-newUSER
    • 4. April 2011 um 19:12

    @Schnitzel


    it works !

    das ist genau was ich suchte und einfach nicht klappen wollte ...


    DANKE :)

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • aIT-newUSER
    • 4. April 2011 um 10:40

    Hallo,

    ich habe nun mal versucht ein Script mit einer Schleife zu erstellen.
    Es durchsucht den Userprofil-Pfad nach Installationsdateien "install*.log"
    Es wird auch jeweils 1ne Datei gefunden, aber das Script wird nicht in einer Schleife abgearbeitet, da in den Userprofilen mehrere
    "install*.log" Dateien liegen und diese weiteren Install-Dateien werden nicht in den Log-Ordner kopiert.
    Hat jemand ne Ahnung, woran das liegen könnte, oder wo der Fehler ist ? Es sollen alle Install*.log-Dateien welche im Userprofilpfad
    gefunden werden in den Log-Ordner kopiert werden, egal wieviele Dateien gefunden werden.

    Dim $sDir = StringReplace(@UserProfileDir,@UserName,"")
    $Filesearch = FileFindFirstFile($sDir & "\install*.log")

    While 1
    $sFile = FileFindNextFile($Filesearch)
    If @error Then ExitLoop
    FileCopy($sDir & $sFile, "LOGS")
    WEnd
    FileClose($Filesearch)

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • aIT-newUSER
    • 26. März 2011 um 09:21

    Hallo an alle,

    erstmal vielen Dank für eure Beiträge.

    Der Code zeigt mir zumindest schon mal den Userprofil-Pfad an :) Yahooo :)
    $sProfileDir = StringReplace(@UserProfileDir,@UserName,"")

    Aber die "Active-Directory UDF " bringt mich nicht weiter, da nicht jeder Rechner zwingend sich in einer Domäne befindet, es können auch Standalone-Clints dabei sein.

    Zitat: "...Für die einzelnen Benutzer müsstest du dann jeweils den (dir bekannten) Namen wissen. .."
    -> Weiter hilft es mir nicht weiter zu wissen, welche "Usernamen" sich in dem Userprofil befinden, dann kann ich gleich die Suche nach den Dateien xyz.txt manuell aufnehmen.

    Nein das soll doch die Schleife übernehmen:
    Die Schleife soll alle Unterordner in -> $sProfileDir = StringReplace(@UserProfileDir,@UserName,"") -> durchsuchen, egal
    wieviele Unterordner sich darin befinden. Die Schleife soll Ordner für Ordner nach den Dateien xyz.txt durchsuchen und dann in einen extra Ordner kopieren.

    Leider habe ich keinerlei Erfahrung mit Schleifen und ich weis nicht wie ich das mit dem Code anstellen soll :O ?

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • aIT-newUSER
    • 25. März 2011 um 20:07

    Hallo Freunde, Römer, Gleichgesinnte ... hört mich an -> i need really your help !


    @first:

    Sorry bin wirklich ganz neu hier und bei autoIT und bin an meine Grenzen in meiner Einarbeitung gestoßen, darum der allgemeine HILFERUF :)


    @zum thema:

    Es geht darum, ich möchte bestimmte txt.Dateien (z.B. xyz.txt) in den Temp-Dateien in den Userprofilen suchen und anschließend an einen
    x-beliebigen Ort z.B. "c:\xyz-Folder\" kopieren.


    Das Problem ist nun folgendes:
    Da ein Rechner ja mehrere Userprofile mit verschiedenen Usern haben kann (z.B. Administrator, Hans, Sabine, etc.) und alle haben eigene Temp-Verzeichnisse haben und ich nicht weis, in welchem Userprofil diese xyz.txt Dateien abgelegt sind, möchte ich durch eine "Schleife" alle Userprofile nach diesen txt-Dateien durchsuchen und bei einem positiven Fund all diese Dateien kopieren, egal auch wenn diese Dateien in mehreren Userprofilen vorhanden sind.


    Weiteres Problem ist, dass sich die Userprofile vom Pfad her in den Betriebssystemen unterscheiden:

    XP -> C:\Dokumente und Einstellungen\...\Temp\xyz.txt

    Win7 -> C:\Users\...\AppData\...\Temp\xyz.txt


    @ALL: -> ich bin ratlos :(


    Thx in advanced im voraus !

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™