2 kleine Frage

08/30/2011 18:19 xShizoidx#1
Guten Tag,

ich hätte da mal 2 kleine Fragen.

Frage 1 :

Ich möchte, dass mein Script alle Dateien ( z.B. alle txtdateien ) ausließt und sie mir zuerst als MsgBox wiedergibt. Es soll nur ein Test sein.
Jedoch bekomme ich es nur so hin, dass er es für diesen Ordner wiedergibt, wo sich mein Script befindet. Wie mache ich es, dass er es überall ausließt?

So mein Script aus :

HTML Code:
#include <File.au3>
$aFiles = _FileListToArray([COLOR="Red"]Hier vielt iwas Bestimmtes?[/COLOR],"*.txt",1) ; Txt Dateien in ein Array lesen
For $i = 1 To UBound($aFiles)-1
    MsgBox(64,"Test",$aFiles[$i])
Next
Frage 2 :

Wie kann ich den Text aus einer Txt. Datei als Befehl wiedergeben?

Also wenn z.B. in der Txt Datei ( start cmd.exe ) steht, dass er es dann macht?

Mein Versuch Script ;
HTML Code:
$read = FileRead ("Befehl.txt")

$read
Inhalt der Txt Datei :

HTML Code:
start cmd.exe
Wäre nett, wenn ihr mir weiterhelfen könntet ;)
08/30/2011 18:49 bollen#2
mit der funktion sollte es klappen
Code:
Dim $Datei = "Die zu suchende Datei"
Dim $Ordner = Der Anfangsorder alle Unterordner werden untersucht 
MsgBox(0, '', _RecursiveFileSearch($Datei, $Ordner) );Ausgabe

;--------------------------------------------------------------------------------------------------
; Funktion        _RecursiveFileSearch($FILE, $SEARCHFOLDER)
;
; Beschreibung    Sucht nach vorgegebener Datei in einem Ordner rekursiv
;
; Parameter        $FILE:            zu suchende Datei
;                $SEARCHFOLDER:    Ordner für Suchstart
;
; Rückgabe        Erfolg:            Pfad der gesuchten Datei
;                                @error = 0
;                Fehler:            1-kein Dateiname / 2-kein Ordnername übergeben (3-beides); 4-Datei nicht vorhanden
;                                @error = 1
;
; Autor            BugFix ([Only registered and activated users can see links. Click Here To Register...])
;--------------------------------------------------------------------------------------------------
Func _RecursiveFileSearch($FILE, $SEARCHFOLDER)
Global $PathFound = ""
Dim $Fehler = 0
    If $FILE = "" Then
        SetError(1)
        $Fehler += 1
    EndIf
    If $SEARCHFOLDER = "" Then
        SetError(1)
        $Fehler += 2
    EndIf
    If @error Then Return $Fehler
    $FSO = ObjCreate("Scripting.FileSystemObject")
    ShowSubfolders( $FSO.GetFolder($SEARCHFOLDER), $FILE )
    If $PathFound = "" Then
        SetError(1)
        $Fehler = 4
        Return $Fehler
    Else
        SetError(0)
    EndIf
    Return $PathFound
EndFunc
Func ShowSubFolders($Folder, $FILE)
    For $Subfolder in $Folder.SubFolders
        If FileExists($Subfolder.Path & "\" & $FILE) Then
            $PathFound = $Subfolder.Path & "\" & $FILE
            ExitLoop
        EndIf
        ShowSubFolders( $Subfolder, $FILE )
    Next
EndFunc
; ==>_RecursiveFileSearch
Diese Funktion ist nicht von mir sondern von BugFix

€: Um einen Befehl auszuführen gibt es viele methoden die einfachste währe warscheinlich die txt Datei in eine .bat umzunennen und sie dan auszuführen
08/30/2011 18:59 BlackHybrid#3
Frage 1:
PHP Code:
#include <File.au3>
#include <Array.au3>
$Array _FileListToArray(@ScriptDir"*")
_ArrayDisplay($Array
Frage 2: Das ist meines Wissens nicht machbar.
08/30/2011 19:21 bollen#4
Quote:
Frage 1:

PHP-Code:
#include <File.au3>
#include <Array.au3>
$Array = _FileListToArray(@ScriptDir, "*")
_ArrayDisplay($Array)
Dabei werden Leider keine Unterordner durchsucht
Quote:
Frage 2: Das ist meines Wissens nicht machbar.
Quote:
Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut
Es ist relativ einfach befehle aus einer .txt datei auszuführen solange man weis in welcher Sprache sie sind.
Wenn es Befehle sind wie diese "start cmd.exe"
kann man diese relativ leicht ausführen indem man sie in eine Batch Datei schreibt und diese dann ausführt oder sofort mit ShellExecute ausführt
Code:
$File=FileRead("TextFile.txt")
ShellExecute(@ComSpec ,$File  ,"")
€:Dieses Beispiel ist natürlich nur bei einer linie in dem .txt file funktionsfähig
08/30/2011 19:33 uragan#5
wieso schreibt ihr im titel immer komische sachen rein, und nicht das was ihr wollt,
du tust nur die suche erschweren für leute die das selbe problem haben

ist zwar nicht zum thema passend, aber musste gesagt werden
08/30/2011 19:36 BlackHybrid#6
Achso ich dachte, dass AutoIt befehle gemeint, die in der txt stehen.
08/30/2011 21:35 V8II#7
Wenn es ein Autoit Befehl ist der in der Datei steht kannst du den ganz einfach mit execute ausführen.
08/30/2011 21:57 BlackHybrid#8
Lol :D
Eben als ichs getestet hab gings nicht :D
Ok geht doch :P
08/30/2011 22:20 bollen#9
autoit befehle müsste man erst einmal Compilen bevor man diese dan ausführen könnte was aber auch ohne große Probleme Geht solang man AutoIt installiert hat
08/30/2011 22:30 BlackHybrid#10
Nein stimmt nicht.
Schreib in eine .txt msgbox(1,"","") und ein script mit Execute(Fileread(*.*)) und du wirst eine msgbox sehen.
08/30/2011 22:49 xShizoidx#11
Erstmal danke für die schnellen Antworten.

Das mit Execute klappt , aber es klappt nur bei bestimmten Sachen. Ich möchte, dass wenn ich z.B. in eine Textdatei eine GUI erstelle und sie dann auslese, dass dann eine GUI angezeigt wird. Muss doch irgendwie realisierbar sein. ;/

Naja ich könnte :

Textdatei auslesen > ausgelesen wird als au3 Datei gespeichert > au3 Datei wird ausgeführt oder funzt das auch nur, wenn der Andere dann Autoit hat?
08/30/2011 23:11 BlackHybrid#12
Wüsste ich nicht, dass das geht und ja er müsste dann AutoIt haben.
Ber du könntest die Coordinaten etc ineiner txt speichern und beim Start die Sachen einsetzten.
08/30/2011 23:18 xShizoidx#13
Ja, aber ich hätte es gerne so, dass er es wie ein Autoit Script behandelt und es einfach ausführt > GUI erstellt oder was dort auch immer steht.

Ist es sonst irgendwie möglich , diesen Befehl auszulesen und den Befehl dann halbwegs zu ignorieren? Naja, kann ich nun blöd erklären , also so stelle ich mir dies vor :

1. Zeile wird ausgelesen ( $read ) > wenn z.B. MsgBox("Test","DiesisteinTest") , dann
2. MsgBox($read,$read) und ignorieren von MsgBox("","") , also dass er dann nur die Werte ausließt?

Ist sowas möglich, falls du verstehst, was ich meine? Das könnte ich dann niemlich so mit allen Befehlen machen.

Ansonsten könnte ich es ja auch so machen, dass er die erste Zeile ausließt und wenn dort eine 1 drinne steht, dann geht er in die 2 te Zeile und führt eine MsgBox mit den dort angegeben Werten aus. Das funktioniert schon mal, aber das ist irgendwie blöd :/
08/31/2011 00:51 omer36#14
Quote:
Originally Posted by netterwurm8 View Post
Ja, aber ich hätte es gerne so, dass er es wie ein Autoit Script behandelt und es einfach ausführt > GUI erstellt oder was dort auch immer steht.

Ist es sonst irgendwie möglich , diesen Befehl auszulesen und den Befehl dann halbwegs zu ignorieren? Naja, kann ich nun blöd erklären , also so stelle ich mir dies vor :

1. Zeile wird ausgelesen ( $read ) > wenn z.B. MsgBox("Test","DiesisteinTest") , dann
2. MsgBox($read,$read) und ignorieren von MsgBox("","") , also dass er dann nur die Werte ausließt?

Ist sowas möglich, falls du verstehst, was ich meine? Das könnte ich dann niemlich so mit allen Befehlen machen.

Ansonsten könnte ich es ja auch so machen, dass er die erste Zeile ausließt und wenn dort eine 1 drinne steht, dann geht er in die 2 te Zeile und führt eine MsgBox mit den dort angegeben Werten aus. Das funktioniert schon mal, aber das ist irgendwie blöd :/
hat noch wer lauter "fragezichen" im kopf, nach lesen dieses textes? :D
08/31/2011 20:16 Benhero#15
Code:
#include <string.au3>

$read = "msgbox(0, 'Test 01', '''Test 02')"
$bw_1 = _StringBetween($read, "'", "',")
$bw_2 = _StringBetween($read, "'''", "')")

MsgBox(0, "", "Text1:" & $bw_1[0] & @CRLF & "Text2:" & $bw_2[0])
Besser habe ich es nicht hinbekommen :D aber er meint es vermutlich so...

Mfg. Benhero