2017-12-22 4 views
0

で2番目の単語を設定するには、私は質問をしました:バッチ:一文に含まセット/ P

だから私は、スクリプトをしました:

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

はどのようにして、入力された文の2番目の単語をエコーすることができますか?

+1

FORコマンドに/ Fオプションを指定すると、文字列を読み取ることができます。 – Squashman

答えて

0

文の内容によっては、各単語を別々の変数に設定することもできます。このような何か:

@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 

あなたは最後から二番目のラインの出力からわかるように、(表示目的でのみ追加)は、2番目の単語は、変数%word[2]%の値になります。

+0

ありがとう!それは魅力のように機能します!一つのことがあります:それは "環境変数単語[定義されていません"、あなたはそれを削除する方法を知っていますか?編集:気にしない、それを修正! –

+0

私はその答えを修正しました。 – Compo

0

を使用すると、(デフォルトのものが=<space><tab>;,ある)区切り文字で文字列を分割することができますthis.With for /fを試してみてください。したがって、スニペットでは、デフォルト区切り文字はスペースとして動作します。

set /p "variableA=Enter a Sentence: " 
for /f "tokens=2" %%# in ("%variableA%") set "second_word=%%~#" 
echo "%second_word%" 
関連する問題