• 締切済み

英数字の文字ごとにメッセージを変えたい

14ケタの英数字があるとします。 たとえば「AAAAAAAP123123」です。 この P の位置にある文字が、「P」か「D」かでメッセージを変えたいです。 「A」や「123」はそのときどきで変わりますが、14ケタの英数字であることは変わりません。 メッセージ自体はごく簡単なもので、たとえば、「Pですよ!」とか「Dですよ!」でいいのです。 batファイルで作りたいのですがどうすればいいですか? 「文字列を入力してください」ときかれて文字列を入力し、メッセージがでるパターンがいいです。 よろしくお願いします。

みんなの回答

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.1

こんにちは。 P/Dの位置も変動するのでしょうか? 常に8文字目なのだとしたら、以下のような記述になります。 (14桁かどうか、入力が正しいか等はチェックしていません) echo off set /p ANS=文字列を入力してください(14桁): if "%ANS:‾7,1%"=="P" echo Pですよ! if "%ANS:‾7,1%"=="D" echo Dですよ! P/Dの位置が変動する場合、条件として ・1文字目の英字が複数個続く ・その次の1文字がPかDのいずれか ・残り14桁までは任意の数字 だとすると以下のような記述になります。 (入力が正しいか等はチェックしていません) echo off set /p ANS=文字列を入力してください(14桁): for /F "tokens=1,2 delims=PD" %%a in ('echo %ANS%') do set x=%%a&set y=%%b call set ANS=%%ANS:%x%=%% call set ANS=%%ANS:%y%=%% if "%ANS%"=="P" echo Pですよ! if "%ANS%"=="D" echo Dですよ! 

関連するQ&A