Donnerstag, April 9, 2020

adb shell Eingabe-text nicht & kaufmännische und-Zeichen

Wenn ich geben Sie einen text mit & – Zeichen dann meine komplette text ist die Eingabe in die edit-box.

D:\Apps\Android-SDK\tools>adb shell die Eingabe von text Hallo&Hallo
‚Hallo‘ ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

Es wurde nur eingegeben, Hallo. aber die anderen & und Hallo-Zeichen nicht eingegeben.

Wenn ich geben Sie den unten
adb-Geräte&adb devices
Es gibt 2 Ausgänge.

adb shell die Eingabe von text-Wert genommen werden soll und in anderen Formaten, wie mit, in Anführungszeichen, oder etwas, anderes.

Wie kann ich geben Sie diesen Wert & Charakter?

3 Kommentare

  1. 5

    Müssen Sie Kapseln die Zeichenfolge in Anführungszeichen und escape Ihr kaufmännisches und-Zeichen "hello\&hello"

    • Keine seiner nicht betreten. Suchen Sie bitte die unten Ausgabe. D:\Apps\Android-SDK\tools>adb shell die Eingabe von text hello1\&hello2 ‚hello2‘ nicht erkannt wird als Befehl interne oder externe, betriebsbereiten Programm oder batch-Datei.
    • Nope, immer noch der gleiche Fehler. D:\Apps\Android-SDK\tools> – adb-shell-input-text „hello12&hello12“ /system/bin/sh: hello12: nicht gefunden
    • behoben.
  2. 2

    ( ) < > | ; & * \ ~ " ' Raum und alle müssen fliehen.
    Platz ersetzt werden kann, mit %s.

    Ich geschrieben habe, ein android-Kommandozeilen-Werkzeug, dies zu tun rufen Sie inputer.

    Eine Funktion von meinem code ist hier (verwendet regex):

    //e.g. convert string "hello world\n" to string "hello%sworld\n"
        char * convert(char * trans_string)
        {
            char *s0 = replace(trans_string, '\\', "\\\\");
            free(trans_string);
            char *s = replace(s0, '%', "\\\%");
            free(s0);
            char *s1 = replace(s, ' ', "%s");//special case for SPACE
            free(s);
            char *s2 = replace(s1, '\"', "\\\"");
            free(s1);
            char *s3 = replace(s2, '\'', "\\\'");
            free(s2);
            char *s4 = replace(s3, '\(', "\\\(");
            free(s3);
            char *s5 = replace(s4, '\)', "\\\)");
            free(s4);
            char *s6 = replace(s5, '\&', "\\\&");
            free(s5);
            char *s7 = replace(s6, '\<', "\\\<");
            free(s6);
            char *s8 = replace(s7, '\>', "\\\>");
            free(s7);
            char *s9 = replace(s8, '\;', "\\\;");
            free(s8);
            char *s10 = replace(s9, '\*', "\\\*");
            free(s9);
            char *s11 = replace(s10, '\|', "\\\|");
            free(s10);
            char *s12 = replace(s11, '\~', "\\\~");
            //this if un-escaped gives current directory !
            free(s11);
            char *s13 = replace(s12, '\¬', "\\\¬");
            free(s12);
            char *s14 = replace(s13, '\`', "\\\`");
            free(s13);
        // char *s15 = replace(s14, '\¦', "\\\¦");
        // free(s14);
            return s14;
    }
  3. 0

    Schrieb ich eine simple oneliner zu entkommen, die Eingabe von text:

    "Hello, world.".replace(/[()<>|;&*\\~"'$]/g, function (match) { return ("\\" + match); }).replace(//g, "%s");
    //

    Müssen Sie es oder fügen Sie weitere escape-Zeichen.

Kostenlose Online-Tests