Batch-String-Verkettung
Ich versuche, erstellen Sie eine batch-string wie diesen: >abcd_
Habe ich eine variable namens soeid, mit dem Wert abcd. Also das ist, was ich Tue, aber es funktioniert nicht.
set soeid=abcd
set "val1=>"
set "val2=_"
set "str=%val1%%soeid%%val2%"
echo %str%
- Die erste Sache, sollten Sie nach der "funktioniert nicht" ist eine Erklärung, wie es funktioniert nicht. Wir können nicht Ihre Gedanken Lesen oder sehen Sie Ihre Bildschirm, von hier; alles, was wir haben, ist, was Sie uns sagen in Ihrer Frage. Wenn Sie möchten helfen, Sie müssen uns nur sagen, was das problem ist, du bist, und wie das, was Sie versucht hat nicht funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin sicher, es funktioniert gut. Um es zu beweisen, füge
SET STR
nach definieren Sie den Wert, und Sie werden sehen, den richtigen Wert.Das problem, das Sie haben, wenn Sie versuchen, auf der echo-Wert, die Zeile, die ausgeführt wird:
echo >abcd_
. Die>
ist nicht escaped oder quotiert, so ist es einfach die Ausgabe von ECHO mit keine Argumente und umleiten in eine Datei mit dem Namen "abcd_"Wenn Sie nichts dagegen haben, sehen die Anführungszeichen, dann ändern Sie Ihre Linie zu
echo "%str%"
und es wird funktionieren.Die andere option ist zu aktivieren und verwenden Sie die verzögerte expansion (ich ' m vorausgesetzt, dies ist ein batch-Skript-code, und nicht die Ausführung auf der Kommandozeile)
Normalen
%var%
expansion erfolgt früh während der interpreter Parsen der Zeile. Verzögert!var!
expansion erfolgt am Ende, kurz bevor es ausgeführt wird. Die Umleitung erkannt wird irgendwo in der Mitte. Das ist, warum die normale Erweiterung nicht funktioniert - der interpreter sieht in der erweiterten>
Charakter und interpretiert es als die Umlenkung der Ausgabe-operator. Die verzögerte Erweiterung blendet die>
Charakter von der Dolmetscherin erst nach Umleitung wird analysiert.Weitere Infos über verzögerte Erweiterung, Typ
SET /?
von der Befehlszeile aus und Lesen beginnend mit dem Absatz, der beginnt mit "Endlich Unterstützung für die verzögerte Erweiterung von Umgebungsvariablen...".