[前の記事]« バッチ起動時の引数の個数の数え方
[次の記事]現在時刻をHHMMSS形式で取得したい »

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

▲カテゴリー「FOR .. IN ( ) DO..」索引へ
▲カテゴリー「IF(結果の検査、条件分岐)」索引へ
▲カテゴリー「UNIXコマンドとDOS/Windows」索引へ

ファイルサイズが0かどうかの判定方法

1172.
ファイルサイズの取得
2006年06月09日(金) 16時32分
りく
●DOS/Windowsのバージョン↓

XPです。

こんにちは。また質問があります。

とあるファイルのサイズが0の場合、異常終了させたいと思っています。
そのような処理をする場合、どのように記述したらよいのですか?
FOR文でファイルを読み込ませるしか方法はないのでしょうか。

unixの「wc」コマンドの様にファイルサイズを取得する命令はないのでしょうか。

よろしくお願い致します。
1173.
Re:ファイルサイズの取得
2006年06月11日(日) 18時58分
otn
>とあるファイルのサイズが0の場合、異常終了させたいと思っています。
>そのような処理をする場合、どのように記述したらよいのですか?
>FOR文でファイルを読み込ませるしか方法はないのでしょうか。
>
>unixの「wc」コマンドの様にファイルサイズを取得する命令はないのでしょうか。

wc はファイルの内容を読み込んでバイト数(と語数、行数)を数えるコマンドですね。読まないでファイルサイズがゼロかどうかを調べるのは、test -s です。

CMDの場合は、
for %%F in (ファイル名) do if %~zF==0 goto SIZEZERO
で読まないでサイズだけを調べられます。
1174.
Re:ファイルサイズの取得
2006年06月12日(月) 09時37分
りく
>CMDの場合は、
>for %%F in (ファイル名) do if %~zF==0 goto SIZEZERO
>で読まないでサイズだけを調べられます。

otnさん、ありがとうございました。
教えて頂いた通りに記述したら、再現できました。

参考までにお聞きしたいのですが、
「wc」命令のように読み込んでファイルサイズを調べるには
どのように記述したらいいのでしょうか。
1175.
Re:ファイルサイズの取得
2006年06月12日(月) 12時18分
otn
>参考までにお聞きしたいのですが、
>「wc」命令のように読み込んでファイルサイズを調べるには
>どのように記述したらいいのでしょうか。

一般的には不可能でしょう。
・改行がCRLFのテキストファイル
・改行以外の制御文字を含まない
・データも英数字と空白程度
・1行の長さがあまり長くない
程度の条件を付ければ出来そうですけど、あまり嬉しくないですよね。
位置指定で部分文字列を切り出せるので位置を変えながら部分文字列が空になる位置を調べれば行の長さがわかります。
1176.
Re:ファイルサイズの取得
2006年06月12日(月) 17時01分
りく
>位置指定で部分文字列を切り出せるので位置を変えながら部分文字列が空になる位置を調べれば行の長さがわかります。

そうなのですか。わかりました。
otnさん、ありがとうございました。
大変勉強になりました。
 
 


カテゴリー「FOR .. IN ( ) DO..」索引へ
カテゴリー「IF(結果の検査、条件分岐)」索引へ
カテゴリー「UNIXコマンドとDOS/Windows」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

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

ひとつ前の投稿は「バッチ起動時の引数の個数の数え方」です。

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

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

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