Umgang mit " innerhalb Strings

  • Hallo Ihr AutoIt-freaks.

    neuer Tag, neue Frage:
    Wie haltet Ihr es denn mit dem Zeichen " in Strings? Ich kenne die Version, doppelte "" zu verwenden, aber das wird dermaßen unübersichtlich, v.a. wenn ein String damit anfängt.

    Ziel ist diesmal, den Befehl dsadd mit den nötigen Parametern zu versorgen und an eine cmd zu übergeben. Der Befehl muss am Ende bekanntlich so aussehen:

    Code
    dsadd ou ou="SUB-OU",ou="OU",dc="DOMAIN",dc="LOCAL"


    Ich bin gestern Abend kirre geworden mit den vielen " und "". Folgende Zeile funktioniert zwar, ist aber grausig zu lesen, zu korrigieren usw.

    [autoit]

    RunWait(@COMSPEC & " /c dsadd ou ou=""" & $new_sub[$k] & """,ou=""" & $new_ou[$i] & """,ou=""" & $super_ou & """," & $DN)

    [/autoit]

    Ich habe mir jetzt überlegt, mit einem Platzhalter, z.B. * zu arbeiten und den erst dann per StringReplace durch "" zu ersetzen.

    Ergebnis ist folgendes:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>

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

    Local $ou="OU"
    Local $sub_ou="Druckerei Chefs"
    Local $new_sub = StringSplit($sub_ou, " ") ; creates an array

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

    Local $i

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

    For $i = 1 to $new_sub[0]
    $new_sub[$i] = "ou=*" & $new_sub[$i] & "*"
    $new_sub[$i] = StringReplace($new_sub[$i], "*", """")
    Next

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

    _ArrayDisplay($new_sub)

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

    For $i = 1 to $new_sub[0]
    RunWait(@COMSPEC & " /c dsadd ou " & $new_sub[$i] & "," & $ou & "," & "usw.")
    Next

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


    Wie geht Ihr mit den """" um?

    Ps. Bitte erzählt mir jetzt nicht, dass es das alles in Euren UDFs schon gibt. Davon gehe ich mittlerweile aus. Ziel ist, zu üben... . Daher freue ich mich über Feedback, was die "" und die Umsetzung insgesamt betrifft. Danke!

    Einmal editiert, zuletzt von optimizer (15. Februar 2012 um 12:59)