で2番目の単語を設定するには、私は質問をしました:バッチ:一文に含まセット/ P
だから私は、スクリプトをしました:
set /p "variableA"="Enter a Sentence: "
*Some script I don't know*
echo "%second word of sentence%"
はどのようにして、入力された文の2番目の単語をエコーすることができますか?
で2番目の単語を設定するには、私は質問をしました:バッチ:一文に含まセット/ P
だから私は、スクリプトをしました:
set /p "variableA"="Enter a Sentence: "
*Some script I don't know*
echo "%second word of sentence%"
はどのようにして、入力された文の2番目の単語をエコーすることができますか?
文の内容によっては、各単語を別々の変数に設定することもできます。このような何か:
@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]%
の値になります。
ありがとう!それは魅力のように機能します!一つのことがあります:それは "環境変数単語[定義されていません"、あなたはそれを削除する方法を知っていますか?編集:気にしない、それを修正! –
私はその答えを修正しました。 – Compo
を使用すると、(デフォルトのものが=
、<space>
、<tab>
、;
、,
ある)区切り文字で文字列を分割することができますthis.With for /f
を試してみてください。したがって、スニペットでは、デフォルト区切り文字はスペースとして動作します。
set /p "variableA=Enter a Sentence: "
for /f "tokens=2" %%# in ("%variableA%") set "second_word=%%~#"
echo "%second_word%"
FORコマンドに/ Fオプションを指定すると、文字列を読み取ることができます。 – Squashman