[前の記事]« 現在時刻をHHMMSS形式で取得したい
[次の記事]FTPの自動化 »

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

▲カテゴリー「IF(結果の検査、条件分岐)」索引へ
▲カテゴリー「バッチファイルの文法と環境変数」索引へ

文字列が数値か、他の文字を含むかの判別

1180.
ファイルの内容が数値か文字化の判別について
2006年06月15日(木) 18時53分
ren
●DOS/Windowsのバージョン↓
XPです。

質問です。
ファイルを読み込んでその内容が数字なら処理Aを、文字なら処理Bを行う、という処理をしたいのですが、どの様に記述すればよろしいのでしょうか。
よろしくお願いします。
●DOS/Windowsのバージョン↓

(以下ご自由に質問文をお書きください)
1181.
Re:ファイルの内容が数値か文字化の判別について
2006年06月15日(木) 23時05分
otn
>●DOS/Windowsのバージョン↓
>XPです。
>
>質問です。
>ファイルを読み込んでその内容が数字なら処理Aを、文字なら処理Bを行う、という処理をしたいのですが、どの様に記述すればよろしいのでしょうか。
>よろしくお願いします。

一般にファイルというのは(0行も含めて)いくつかの行からなり、1つの行は(0文字も含めて)いくつかの文字から出来ています。

そのファイルは1文字だけからなる1行だけのファイルだと言うことでしょうか?

そうでないならもうすこし具体的に書いてください。
1182.
Re:ファイルの内容が数値か文字化の判別について
2006年06月16日(金) 10時24分
ren
失礼しました。あまりにも抽象的な質問でした。

そのファイルは1行だけのファイルであり、文字数は定まっておりません。数字のみ「885256」等が入っていたり、文字の「7AA」等が入っていたりします。

読み込んだファイルの内容を「SET /A」で何かしらの数値を足してみて、その結果から数値か文字か判定するということはできないのでしょうか?
1186.
Re:ファイルの内容が数値か文字化の判別について
2006年06月19日(月) 21時19分
otn
>失礼しました。あまりにも抽象的な質問でした。
>
>そのファイルは1行だけのファイルであり、文字数は定まっておりません。数字のみ「885256」等が入っていたり、文字の「7AA」等が入っていたりします。
>
>読み込んだファイルの内容を「SET /A」で何かしらの数値を足してみて、その結果から数値か文字か判定するということはできないのでしょうか?

数字に、
・先頭が0で始まる2桁以上で無い
・値が2147483647(2^31-1)以下である
という前提条件をつければ、
set /p X=<FILE.txt
set /a Y=X+0
if "%X%"=="%Y%" echo 数字だけ
で出来ます。

上記の前提が置けなければ、0から9の文字を削除して空になるかどうかで判断するしかないですね。

set /p X=<FILE.txt
if defined X set X=%X:0=%
if defined X set X=%X:1=%
if defined X set X=%X:2=%
if defined X set X=%X:3=%
if defined X set X=%X:4=%
if defined X set X=%X:5=%
if defined X set X=%X:6=%
if defined X set X=%X:7=%
if defined X set X=%X:8=%
if defined X set X=%X:9=%
if not defined X echo 数字だけ

 
 


カテゴリー「IF(結果の検査、条件分岐)」索引へ
カテゴリー「バッチファイルの文法と環境変数」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2006年06月15日 13:38に投稿されたエントリーのページです。

ひとつ前の投稿は「現在時刻をHHMMSS形式で取得したい」です。

次の投稿は「FTPの自動化」です。

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

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