Zufalls Wert generieren ---> Ordner erstellen

  • Nabend zusammen,


    Wie bereits im Titel steht ich suche eine Funktion die mir einen Zufallswert generiert und dann einen Ordner mit diesem Namen erstellt :)
    (Wenn möglich diesen Ordner dann auf einem FTP erstellen)


    Gruß

    Einmal editiert, zuletzt von Silverlight (26. Januar 2010 um 19:32)

  • Guck dir mal Random( [Min [, Max [, Flag]]] ) und DirCreate("path") an, den Rest kannst du dir selber zusammenstricken.

  • Naja ich hab jetzt

    Code
    Func button2()
    Random (1 , 500 , 1)
    DirCreate("c:/Random") 
    EndFunc

    Was muss ich machen damit er den Random Wert nimmt und damit einen Ordner erstellt?

  • Code
    Func button2()
    Dim $i
    $i = Random (1, 500, 1)
    DirCreate("c:\" & $i)
    EndFunc

    Ich depp :D
    Vielen Dank Leute, jetzt geht es.
    Hatte wo anders einen Fehler drinne :P

  • Ich hoffe mal das du deine Function dann auch irgendwo aufrufst.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form3 = GUICreate("Form3", 341, 77, 302, 218)
    $Button1 = GUICtrlCreateButton("Button1", 120, 24, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _randomdir()
    EndSwitch
    WEnd

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

    Func _randomdir()
    $i = Random (1, 500, 1)
    DirCreate("c:\" & $i)
    EndFunc

    [/autoit]

    Oder gleich so

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form3 = GUICreate("Form3", 341, 77, 302, 218)
    $Button1 = GUICtrlCreateButton("Button1", 120, 24, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $i = Random (1, 500, 1)
    DirCreate("c:\" & $i)
    EndSwitch
    WEnd

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

    edit: Immer diese Schnelleditierer :P

  • Wenn nicht mehrmals in einer Sekunden Ordner erstellet werden sollen, würde ich anstelle von Zufallszahlen eher ein Datum-Zeit-Format wählen, wie z.B. 2010-01-26_193320.

    [autoit]


    $foldername = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & @MIN & @SEC

    [/autoit]

    Ansonsten kann man ja noch eine Zufallszahl dran hängen!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Danke ihr seid die besten :)

    Kann man auch den Computer Name auslesen, eine Zufallszahl dranhängen und mit dem Wert ein Ordner erstellen? :)

    *noch 10000 weitere Fragen im Kopf*

  • Ok jetzt steht es fest ihr seid die besten,
    so schnelle & gute Antworten habe ich noch von keinem Forum gesehen :)

    Btw noch eine Frage: Gehen mit AutoIT auch strings wie %appdata% ?
    Denn ich möchte in Anwendungsverzeichnis (2te Frage) eine Datei suchen,
    konkret gesagt er soll in dem ganzen Ordner eine Datei namens gameconfig.ini suchen
    und diese mir auf den Desktop kopieren.

    Ist das umsetzbar :D?

  • Nett hat geklappt :)

    btw wie kann man das mit dem Zufalls Ordner via FTP realisieren?
    Habe mir die _FTPMakeDir aus der ftp.au3 angeschaut , bin aber noch nicht schlau draus geworden :D

    2 Mal editiert, zuletzt von Silverlight (26. Januar 2010 um 21:18)

  • Einen "richtigen" zufallsnamen kannst du dir übrigens so erstellen:

    Spoiler anzeigen
    [autoit]

    MsgBox(0,"","C:\"&_TempDir("C:\"))

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

    Func _TempDir($sPath,$iLength=10)
    Local $sRet, $sDigit = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    Local $aDigit = StringSplit($sDigit,"",2)
    If StringRight($sPath,1) <> "\" Then $sPath &= "\"
    Do
    $sRet &= $aDigit[Random(0,UBound($aDigit)-1,1)]
    Until StringLen($sRet) >= $iLength And Not FileExists($sPath&$sRet)
    Return $sRet
    EndFunc

    [/autoit]
  • Hallo

    warum denn so umständlich, gibt doch schon eine fertige func zum Namen Generieren.

    Zitat

    _TempFile
    --------------------------------------------------------------------------------

    Generiert einen Namen für eine temporäre Datei. Diese Datei existiert garantiert noch nicht.

    Hier das Beispiel dazu aus der deutschen Hilfe:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    Dim $s_TempFile, $s_FileName

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

    ; Ermittelt einen eindeutigen Dateinamen im @TempDir
    $s_TempFile = _TempFile()

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

    ; Ermittelt einen eindeutigen Dateinamen, der mit 'tst_' beginnt und mit der Erweiterung '.txt' endet, im angegebenen Verzeichnis
    $s_FileName = _TempFile("C:\", "tst_", ".txt", 7)

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

    MsgBox(4096, "Info", "Geeignete Namen für die neue temporäre Datei: " & @LF & @LF & $s_TempFile & @LF & $s_FileName)

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

    Exit

    [/autoit]
  • Danke für eure Lösungen, echt nett von euch :)
    Allerdings scheitere ich gerade dabei das via FTP zu realisieren.
    Den Zufalls Ordner bekomm ich auf dem FTP erstellt.
    Allerdings wie kann ich in den Ordner wechseln? (Dessen Name man ja nicht kennt :D)
    Btw da was uploaden?

  • Zum Beispiel so ....

    Spoiler anzeigen
    [autoit]

    #include <FTPEx.au3>
    $open = _FTP_Open("myftp")
    $server = "ftp://localhost"
    $user = "user"
    $pass = "pass"
    $con = _FTP_Connect($open,$server,$user,$pass)
    If $con == 0 Then
    MsgBox(0,"","Verbinden fehlgeschlagen!")
    EndIf

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

    $i = Random(1, 500, 1)
    _FTP_DirCreate($con, $i) ;oder nach welcher Methode du deinen Ordner jetzt erstellst
    _FTP_DirSetCurrent($con, "/" & $i)
    $put = _FTP_FilePut($con, @ScriptDir & "\test.txt", $i)
    If $put == 0 Then
    MsgBox(0,"","Upload fehlgeschlagen!")
    EndIf

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

    _FTP_Close($con)

    [/autoit]

    Im Editor getipselt. Angaben ohne Gewähr.