2017-12-18 3 views
1

Ich versuche herauszufinden, wie Sie eine Batch-Datei erhalten, damit ein Benutzer die Zeichenfolge "blahblahblah = 12345" eingeben kann und dann STRIP die ersten 13 Zeichen der Zeichenfolge, einschließlich des Gleichheitszeichens. Das Problem ist jedes Mal, wenn ich versuche, das = (Gleichheitszeichen) einzugeben, bekomme ich das "= war zu diesem Zeitpunkt unerwartet" -Fehler. HierWie entfernen Sie ein EQUALS SYMBOL aus einer Zeichenfolge, die ein Benutzer in eine Windows-Stapeldatei CLI eingibt?

ist die Batch-Skript:

REM BEGIN 

@echo off 

set /p STUFF="type in something: " 

IF %STUFF%==blahblahblah^= goto 2 

:2 

set STUFF=%STUFF:~13% 

echo %STUFF% 

REM END 

Ok, jetzt, was ich will tatsächlich funktioniert, solange ich NICHT INPUT AN = (Gleichheitszeichen)

Also, wenn es der Eingang war blahblahblah12345 die Ausgabe lautet: 12345

Allerdings, wenn ich Eingabe der blahblahblah=12345 dann ist der Ausgang

=12345==blahblahblah= was unexpected this time. 

Ich habe versucht, die FOR /f "delims== tokens=1" Sachen zu tun, aber ich kann nicht herausfinden, wie man diese Arbeit für das, was ich versuche, zu machen. Es ist ziemlich spezifisch, ich möchte nur das Gleichheitszeichen sowie das "blahblahblah" von der "12345" entfernen, so dass die Ausgabe nur "12345" ist. Kann jemand helfen?

+0

Mein Vorschlag ist nicht, ein ** '=' ** von Anfang an einzugeben! Was ist der Schaden, wenn man nach string/sum/variable fragt und nach Wert fragt? 'Set/P" Variable = Variablenname eingeben: "' gefolgt von 'Set/P" Wert = Wert für% Variable% eingeben: "' – Compo

Antwort

0

Verwenden Sie Anführungszeichen:

IF "%STUFF%"=="blahblahblah=" goto 2 

Batch erweitert Variablen vor der Verarbeitung Befehle, so, ohne Anführungszeichen Batch etwas wie IF blahblahblah=12345==blahblahblah goto 2 interpretieren würde verursachen IF zum Scheitern verurteilt.

+0

omfg. Vielen Dank, ich konnte nichts über Zitate finden. Es funktionierte! –

+0

BTW, könnten Sie erklären, warum Sie Zitate um% STUFF% verwenden müssen? Ich dachte, es würde nur mit den Zitaten für "blahblahblah =" funktionieren, aber anscheinend ist das nicht der Fall, da ich das versucht habe und es nicht funktioniert hat. Aber Ihr Beispiel DID, ich verstehe einfach nicht, warum Sie Zitate um die Variable setzen müssen? –

+0

@TomcatCruiser, der Vergleich ist ein LITERAL-String-Vergleich. Schlicht und einfach. QToes werden immer in Batchdateien verwendet, um Leerzeichen und Sonderzeichen zu schützen. Meine beste Praxis ist es, sie immer zu benutzen. – Squashman

Verwandte Themen