[前の記事]« バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい
[次の記事]ファイルサイズが0かどうかの判定方法 »

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

▲カテゴリー「バッチファイルの起動、引数の取得」索引へ

バッチ起動時の引数の個数の数え方

1166.
引数についての質問です。
2006年06月07日(水) 16時04分
りく
●DOS/Windowsのバージョン↓
XPです。

はじめまして。りくと申します。
引数について質問したいことがあります。

あるバッチファイルを起動するときに引数を渡すのですが、その渡された引数がいくつあるのかを判別する処理というのはどのように記述すればよいのでしょうか?

unixでいうところの「$#」と同じ動きをさせたいのですが、どう記述したらよいかわかりません。

よろしくお願い致します。
1167.
Re:引数についての質問です。
2006年06月08日(木) 11時21分
otn
>unixでいうところの「$#」と同じ動きをさせたいのですが、どう記述したらよいかわかりません。

そういう機能は無いです。
if "%2"=="" のようにするしかない。

1168.
Re:引数についての質問です。
2006年06月08日(木) 16時26分
りく
そうでしたか。
ありがとうございました。
これからもよろしくお願いします。
1169.
Re:引数についての質問です。
2006年06月08日(木) 17時59分
じゃく
>そうでしたか。
>ありがとうございました。
>これからもよろしくお願いします。

特殊文字とかが引数に入った場合の検証をすべてやったわけではありませんが、

-------------------------------- sample.bat
set argc=0
for %%a in ( %* ) do set /a argc+=1
echo %argc%

これで引数の数をカウントできませんか?

1170.
Re:引数についての質問です。
2006年06月09日(金) 11時57分
otn
>>そうでしたか。
>>ありがとうございました。
>>これからもよろしくお願いします。
>
>特殊文字とかが引数に入った場合の検証をすべてやったわけではありませんが、
>
>-------------------------------- sample.bat
>set argc=0
>for %%a in ( %* ) do set /a argc+=1
>echo %argc%
>
>これで引数の数をカウントできませんか?

おお。確かに。
普通に使う分には十分ですね。

これでうまくいかない記号は、仮に数を数えられたとしても他の部分で処理がうまくいかないでしょうし。

ただ、実際には、数を数えて終わりというケースは無くて、「1個の時はこういう処理、2個のときは・・・・」という処理でしょうから、
if "%1"=="" goto nashi
if "%2"=="" goto ikko
if "%3"=="" goto niko
if "%4"=="" goto sanko
で十分実用的だと思います。
1171.
Re:引数についての質問です。
2006年06月09日(金) 15時24分
りく
>ただ、実際には、数を数えて終わりというケースは無くて、「1個の時はこういう処理、2個のときは・・・・」という処理でしょうから、
>if "%1"=="" goto nashi
>if "%2"=="" goto ikko
>if "%3"=="" goto niko
>if "%4"=="" goto sanko
>で十分実用的だと思います。

そうですね、引数が一個なら処理1、二個なら処理2。。。としたいのでotnさんの方式をとらせて頂きました。

お二方ともどうもありがとうございました。
 
 


カテゴリー「バッチファイルの起動、引数の取得」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2006年06月07日 16:30に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチでファイルを読み込んで、取得した文字列をSQL文の条件に設定したい」です。

次の投稿は「ファイルサイズが0かどうかの判定方法」です。

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

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