Entfernen Sie das erste und letzte Zeichen aus einer Zeichenfolge in einer Windows-Batch-Datei

8

Ich habe die folgende Zeichenfolge in meiner Windows-Stapeldatei:

%Vor%

Die Zeichenfolge enthält auch die zwei Anführungszeichen am Anfang und am Ende der Zeichenfolge, so wie oben beschrieben.

Ich möchte die ersten und letzten Zeichen entfernen, so dass ich die folgende Zeichenfolge bekomme:

%Vor%

Ich habe es versucht:

%Vor%

Dies druckt die Zeichenfolge so aus, wie sie sein sollte:

%Vor%

Aber wenn ich versuche, die bearbeitete Zeichenfolge wie folgt zu speichern, schlägt sie fehl:

%Vor%

Nichts wird ausgedruckt. Was mache ich falsch?

Das ist wirklich seltsam. Wenn ich die Zeichen so lösche, funktioniert es:

%Vor%

es druckt aus:

%Vor%

Aber eigentlich ist mein Stapel etwas komplizierter und da funktioniert es nicht. Ich werde zeigen, was ich programmiert habe:

%Vor%

Und die Ausgabe ist:

%Vor%

Aber was ich will ist:

%Vor%     
Metalhead89 22.08.2012, 13:42
quelle

3 Antworten

4

Sie verändern eine Variable innerhalb eines geklammerten Blocks. Vorsicht - der neue Wert wird nicht innerhalb desselben Blocks verwendet (außer Sie begrenzen die Variable mit! Statt% - und laufen im Modus enabledelayedexpansion). Oder extrahieren Sie einfach die paar Zeilen in eine andere Unterfunktion, indem Sie eine einfache Folge von Zeilen anstelle von () verwenden

grüßt, Stach

    
Stach 09.07.2013 10:46
quelle
4

Hoffnung wird dir helfen. Echo String OHNE Stripping-Zeichen: %% I

%Vor%

Es könnte funktionieren. Probieren Sie es einmal.

    
phani 07.03.2014 04:54
quelle
2

Dieses Skript nutzt ENABLEDELAYEDEXPANSION. Wenn Sie nicht wissen, werden Batch-Skripte für und if-Befehle in einem ausgeführt. also wenn du es tust:

%Vor%

Sie geben nichts aus, da bei der Ausführung von echo% testvalue% der Testwert nicht erkannt wurde. Durch die Verwendung von delayedexpsion kann das Skript den aktuellen Wert lesen und das zuvor erwähnte Problem vergessen. Sie verwenden es genauso wie% testvalue%, aber Sie können dies tun! um das zu beheben:

%Vor%
  • Würde 123 wiederholen.
%Vor%

~ Alex

    
Alex Lindstrom 02.01.2016 21:23
quelle