質問

インタラクティブなバッチファイルを処理する方法

たとえば、

続行しますか? [y / n]

「y」の場合、Label1に移動

Else Goto Label2

ありがとう

役に立ちましたか?

解決

SETコマンドを使用できます。以下は、上記の擬似コードに相当するDOSコマンドです。

set /p choice=Do you want to continue? [y/n]
if '%choice%'=='Y' goto label1
goto label2

他のヒント

choiceコマンドを使用して、有効な文字セットとメッセージを指定できます。

choice /C YN /M "Do you want to continue?"
if errorlevel 2 goto labelno
if errorlevel 1 goto labelyes

set / p choice =続行しますか? [y / n] "%choice%" ==" y" ( goto label1 )または、label2に移動

皆さんの回答の大部分は好きですが、私がしたいことはほとんどです(たとえば、このコードは私の組織のやり方です。

:Label1
@echo off
color (any color)
title (anything here)

set /p choice=Do you want to continue? [y/n]
IF %choice% == y goto Label2
IF %choice% == n exit

:Label2
cls
echo you chose Yes.

これを行う1つの方法を知っています(@ user3093687の投稿など)

set /p choice=Do you want to continue? (y,n)
if /I %choice%==y goto Label2
if /I %choice%==n goto exit

:Label2
Cls
echo You chose yes

:exit
exit

バッチファイルの2行目と3行目の/ Iは、大文字と小文字を区別せず、特殊文字が無視されるようにします(例Yとyは両方ともyとして読み取られます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top