[前の記事]« 2つのテキストファイルの内容を行単位で結合したい
[次の記事]テキストファイルから行単位でデータを読み取るには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「IF(結果の検査、条件分岐)」索引へ

長いIF文を複数行に分けたい

906.
IF文について
2005年12月27日(火) 14時17分
KAI
●DOS/Windowsのバージョン↓
Windows 2000 [Version 5.00.2195]

IF文についての質問です。
IF文を複数行に渡って記述したいのですが、GOTO文を使用しなくても可能な方法ってありませんか?
一行に記載するとIF文が長くなってしまい見難いので・・・。
極力GOTO文は使いたくないのです。
何か方法があればご指南よろしくお願いします。
907.
Re:IF文について
2005年12月28日(水) 12時54分
YanaKen◆c0rnJ1Q=
KAIさん こんにちは。

>Windows 2000 [Version 5.00.2195]

>IF文を複数行に渡って記述したいのですが、GOTO文を使用しなくても可能な方法ってありませんか?
>一行に記載するとIF文が長くなってしまい見難いので・・・。
>極力GOTO文は使いたくないのです。

 WindowsNT系ではif文で else が使えますし、 ( ) を使えば一連の処理を複数行に分けて書けることになってます。ゆえに、たとえば次のように、論理的に1行として扱われる処理を複数行に分けて書くことが可能です。

@echo off
if %1.==. (
  echo パラメータがありません。
  echo 起動時、パラメータとして1か2を指定してください。
) else if %1.==1. (
  echo given parameter is 1
) else if %1.==2. (
  echo given parameter is 2
) else (
  echo パラメータには1か2のどちらかを指定してください。
)

 ……ってなあたりでいかがなもんでしょうか。

YanaKen
908.
Re:IF文について
2005年12月28日(水) 14時00分
YanaKen
YanaKenさん、ありがとうございました。
とても参考になりました。
909.
Re:IF文について
2005年12月29日(木) 17時58分
otn
>YanaKenさん、ありがとうございました。
>とても参考になりました。

ただし、( ) を使った場合は、それら全部が一気に構文解析および % による環境変数展開されますので、注意が必要です。
set /? に説明がありますが、下記は直感どおりの動作はしません。

set VAR=before
if "%VAR%" == "before" (
 set VAR=after;
 if "%VAR%" == "after" @echo If you see this,it worked
)
910.
Re:IF文について
2005年12月29日(木) 19時57分
otn
おっと、変なところにセミコロンがありますね。"after;"と"after"ならどうしたって一致しない。でもこれ、set /? のコピペなんでマイクロソフトのドキュメントバグです。

>>YanaKenさん、ありがとうございました。
>>とても参考になりました。
>
>ただし、( ) を使った場合は、それら全部が一気に構文解析および % による環境変数展開されますので、注意が必要です。
>set /? に説明がありますが、下記は直感どおりの動作はしません。
>
>set VAR=before
>if "%VAR%" == "before" (
> set VAR=after;
> if "%VAR%" == "after" @echo If you see this,it worked
>)
 
 


カテゴリー「IF(結果の検査、条件分岐)」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年12月27日 11:48に投稿されたエントリーのページです。

ひとつ前の投稿は「2つのテキストファイルの内容を行単位で結合したい」です。

次の投稿は「テキストファイルから行単位でデータを読み取るには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート