2017-12-22 2 views
0

Ich habe eine Frage:Batch: set zweites Wort in sentance Satz/p

Also habe ich ein Skript:

set /p "variableA"="Enter a Sentence: " 
*Some script I don't know* 
echo "%second word of sentence%" 

Wie kann ich das zweite Wort des eingegebenen Satzes Echo?

+1

Verwenden Sie den Befehl FOR mit der Option/F, um die Zeichenfolge zu lesen. – Squashman

Antwort

0

Je nach Inhalt Ihres Satzes können Sie möglicherweise auch jedes Wort auf eine separate Variable setzen; so etwas wie diese:

@Echo Off 
SetLocal EnableDelayedExpansion 

Set "sentence=" 
For /F "Delims==" %%A In ('Set word[ 2^>Nul') Do Set "%%A=" 

:Loop 
Set /P "sentence=Enter a sentence: " 
If Not Defined sentence GoTo Loop 
Set "i=1" 
Set "word[!i!]=%sentence: ="&Set /A i+=1&Set "word[!i!]=%" 

For /L %%A In (1,1,%i%) Do Echo %%word[%%A]%%=!word[%%A]! 
Pause 

Wie Sie aus dem Ausgang der vorletzten Zeile sehen können, (nur zur Anzeige hinzugefügt) würde das zweite Wort der Wert der Variablen %word[2]% sein.

+0

Danke! Es wirkt wie ein Zauber! Es gibt eine Sache: es gibt "Umgebungsvariables Wort [nicht definiert" aus, wissen Sie, wie Sie das entfernen können? EDIT: Vergiss es, repariere es! –

+0

Ich habe meine Antwort mit einem Update für das aktualisiert. – Compo

0

versuchen this.With for /f Sie Strings durch Trennzeichen (auch keine = sind, <space>, <tab>, ;, ,) aufspalten. In diesem Abschnitt werden die Standardbegrenzer als Leerzeichen verwendet.

set /p "variableA=Enter a Sentence: " 
for /f "tokens=2" %%# in ("%variableA%") set "second_word=%%~#" 
echo "%second_word%"