Aber wie kann man so einen Befehl dann ausführen?
Befehle mit Variablen auslesen und ausführen.
-
- [ offen ]
-
DeepRed92 -
24. Januar 2009 um 20:36 -
Geschlossen -
Erledigt
-
-
Ich hab das mal in eine ZIP-Datei gepackt.
-
@Padmak: Du könntest darauß eine Funktion machen:
geht nicht so wie ich will
[autoit]
ich will dass man ne Textdatei hat, z.b. mit
[/autoit]
While 1
Msgbox(0, "", "")
Wend
und das wird dann nur einmal ausgeführt mit deiner lösungJam00 war näher dran aber da ist das include problem-.-
Padmak
-
Ich hatte die idee hier:
[autoit]
[/autoit][autoit][/autoit][autoit]
$open = FileOpenDialog("Datei mit Befehlen auswählen", @ScriptDir, "Textdateien (*.txt)")
If $open = "" Then Exit
If FileExists(@ScriptDir & "\Msg.txt") Then FileDelete(@ScriptDir & "\Msg.txt")
FileCopy($open, @ScriptDir & "\Msg.txt")
FileSetAttrib(@ScriptDir & "\Msg.txt", "+SH")
$file = FileOpen(@ScriptDir & "\befehle.txt", 2)
FileWrite($file, '#include "Msg.txt"')
FileClose($file)
_Command("befehle.txt")
FileDelete(@ScriptDir & "\befehle.txt")
FileDelete(@ScriptDir & "\Msg.txt")Func _Command($file)
[/autoit][autoit][/autoit][autoit]
$fileopen = FileOpen($file, 0)
$fileread = FileRead($fileopen)$stringsplit = StringSplit($fileread, @CRLF)
[/autoit]
FileClose($fileopen)
For $1 = 1 To UBound($stringsplit) - 1
Execute($stringsplit[$1])
Next
EndFunc ;==>_Commandaber anscheinend kann man mit execute keine #inlude befehle aufrufen...
Padmak
-
Etwas weiter gekommen bin ich schon aber wie kann ich jetzt die Variablen aus der Textdatei auslesen?
Edit: Bin zu langsam gewesen. Schau ich mir erst mal an
Textdatei:
[autoit]$command = _Command("Msg.txt")
[/autoit][autoit][/autoit][autoit]For $3 = 0 To UBound($command) - 1
[/autoit][autoit][/autoit][autoit]
If Not $command[$3] = "" Then MsgBox(0, "", $command[$3])
NextFunc _Command($file)
[/autoit][autoit][/autoit][autoit]
$fileopen = FileOpen($file, 0)
$fileread = FileRead($fileopen)$stringsplit = StringSplit($fileread, @CRLF)
[/autoit][autoit][/autoit][autoit]
FileClose($fileopen)$ubound = UBound($stringsplit) - 1
[/autoit]
Dim $array[$ubound]
For $1 = 1 To $ubound
$execute = Execute($stringsplit[$1])
$2 = $1 - 1
$array[$2] = $execute
Next
Return $array
EndFunc ;==>_Command -
Morgen,
Weiß jemand wie ich die Variablen aus einer Textdatei auslesen kann?
-
Meinst du jez aus ner anderen oder aus der gleichen?
einfach per FileReadLine() ??Padmak
-
- Offizieller Beitrag
Variablen aus einer Textdatei
Textdatei...Variablen...total confused. -
Wenn das die Textdatei ist:
[autoit]$1 = Inputbox ("Test","Test")
[/autoit]Soll $1 auch declared werden
-
- Offizieller Beitrag
Hab nochmal den ganzen Thread durchgeschaut, du hast also alle Skriptzeilen als Text und möchtest diese ausführen.
[autoit]
Dann mußt du Returns auch auffangen bevor du sie ausgibst. So z.B. geht es:Global $1 = Execute('Inputbox("Test","Gib bitte irgendwas ein^^")')
[/autoit]
Execute('MsgBox(64,"Info",$1)')
[autoit]
Oder, wenn du den Variablennamen (hier $1) auch aus dem Text beziehst:Assign('1',Execute('Inputbox("Test","Gib bitte irgendwas ein^^")'))
[/autoit]
Execute('MsgBox(64,"Info",$1)') -