Hallo!
Wie kann ich denn den Wert einer globalen Variable in ein anders Script übertragen?
(z.B. wird dir Variable X in Script A bestimmt und ich möchte genau diesen Variablenwert auch in Script B verwenden!)
Wär super, wenn mir des jemand kurz sagen könnte
Variable in andres Script übertragen
-
MasterDiKey -
7. März 2006 um 14:35 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
mehrere möglichkeiten:
1. du schreibst es in script A so das er das in einer datei abspeichert, werehnd Script B jede sekunde in die datei guckt
oder 2. du schreibst scribt B so das es auch per cmdline funktionier, du also nur in script A schreiben musst:
scribt b müsste am anfang so aussehen:CodeIf $cmdline[0] > 0 Then; checkt ob überhaupt was in der cmdline drinsteht $X = $cmdline[1];x wird als cmdline declarirt! wenn man also "scribtB.exe hallo" startet, wird in der msgbox "hallo" angezeigt! Else; wenn nix in der cmdline drin is also man "scriptB.exe" so startet wird x zu -1! $X = "-1" EndIf MsgBox(0,"",$X);hier wird das ergebnis ausgestrahlt $data = """hallo! wenn x = -1 dann wird das hier in der msgbox stehen!"""; wichtig: hier ist ein satz mit leerzeichen also musst du den text in " fassen also "+"" wegen "!? du kannst auch '" machen! $data = '"hallo! wenn x = -1 dann wird das hier in der msgbox stehen!"'; also so! If $x = "-1" Then RunWait(@ComSpec & ' /c '&@ScriptFullPath&" "&$data, '', @SW_HIDE); hier startet er nochmal mit dem text von $data in $cmdline[1]!
-
Cool,
vielen Dank -
- Offizieller Beitrag
na klar immer gerne
-
Hm, jetzt hab ich nochmal n ähnliches Prob :(...
Also, ich möchte 2 Variablen und nicht mehr nur eine übertragen. Hab mir des in der Anleitung angeschaut, aber ich versteh nicht, wie des gehtDes muss man irgendwie mit $cmdline[1] und $cmdline[2] machen, aber dass beide Parameter ne Variable sind krieg ich nicht hin.
Es werden z.B. die Variablen X und Y in Script A bestimmt und die will ich dann in Script B weiterverwenden.
Wäre cool, wenn mir da wiedermal jemand helfen könnte
-
- Offizieller Beitrag
wie sieht die variable denn aus? also enthält sie leerzeichen?
wenn ja muss du sie in " setzen! Aslo so:Code$a = '"hallo dies ist ein test"' $b = "dies_ist_nur_ein_wort_desswegen_keine_gänsefüschen!" Run("ScriptB.exe "&$a&" "&$b)
oder du machst es mit EnvSet:
und dann liest du es im anderen script so aus:
EnvSet/Get ist eine parameterübergabe ans Betriebsystem und soetwas wie die Zwischenablage nur das es undendlich viele verschiedene davon gibt!ABER: -
Ui, super Genau des hab ich gebraucht.... Vielen Dank!!