• ベストアンサー

DOSプロンプトのDIRのレイアウトを制御できますか

Windows98SEのDOSプロンプトで DIRの表示で、ファィル容量(Byte)の書式を3桁区切りのない 表示にする方法を教えてください。 例 ABCDEFGH.TXT 123,456,789 02-08-09 10:15 このレイアウトを   ABCDEFGH.TXT 123456789 02-08-09 10:15 にしたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.3

>ところで、フィルタープログラムのことまったく何のことかわかりません。 >お時間の許す限り教えてください。 標準入力から読みこみ、読み込んだデータを加工して、その結果を標準出力に出力するプログラムです。 アイデア次第で汎用的で便利な機能が作れます。 例えば、特定の文字をカットするとか、大文字に変換するとか、並べ替えをするとか、特定の文字列が含まれる行だけを出力するとかです。 DOSでは、 dir | sort とやると行が並べ替えて出力されるのがあると思います。 >一旦DOSコマンドレベルでDIRをファイルにフィルタし、 >そのファイルをOPENして判断しています。 ファイル化して読み出すのであれば、そのBASICプログラムで、対応できるのではないでしょうか? 1行読みこんだ後で、","が含まれていればそれを取り除く処理をしてやればいいと思います。 もっと具体的に言えば、文字列を1文字ずつ取り出して、それが","出なければ、別の文字列にアペンドしていくという感じですね。 コードは、自分で考えてください。

T_top
質問者

お礼

ご回答ありがとうございました。

T_top
質問者

補足

>ファイル化して読み出すのであれば、そのBASICプログラムで、対応できる・・・ WindowsXPのDIR表示とWindows98SEのDIR表示とは レイアウトが違います。 XPは13バイト目から10バイト分、98は13バイト目から14バイト分 がファイル容量として表示されています。 ネットワークでプログラムを共通に使っているので、IF文でOSのVersionを判断して切り分けするのも面倒なため、なにか良い方法があればと思い 投稿しました。 色々ご親切にご回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

LOFという関数は使えませんか? 私はほとんど使ったことが無いので細かいことは忘れてしまいましたが、これでファイルの長さが取得できたはずです。 使い方は  LOF(ファイル番号) です。 関数ですので、適当な変数に代入するよう形にしてください。

T_top
質問者

お礼

ご回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

まず、DOSプロンプトにはそのような機能はありません。 それから、#1での補足を見て思った事を書きます。ただし、私はBASICを使った経験がないので、一般的なプログラミングの話になります。 (1) プログラムの中で保存したファイルの容量を把握したいということですが、保存時にデータのサイズをチェックしておくことはできないのでしょうか。 (2) DIRの結果を処理する時点で","を取り除くプログラムは作成できないのでしょうか。(MovingWalkさんの言っているフィルタープログラムです。) (3) DOSのコマンドを使用しないでファイルサイズをチェックすることはできないのでしょうか? 極端な方法ですが、ファイルのデータを全て読み込んでサイズを調べれば、ファイルサイズはわかるかと思います。(もっと良い方法があるかもしれませんが、BASICはよくわからないので...)

T_top
質問者

お礼

ファイルサイズのチェックはいろいろ考えられますが 私の質問の内容がなんとかできないものか(たとえば DIRのレイアウト設定があるとか・・)意地になっ ています。 色々ご親切にご回答ありがとうございました

すると、全ての回答が全文表示されます。
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

そのような機能はありませんが、そもそも理由は何でしょうか? どうしてもやりたければフィルタープログラムを作ればできます。 (DIRの標準出力を取り込んで、容量の","を取り除くプログラムです。比較的簡単に作れます) あるいは、一旦ファイルの落としてからエディタで編集すれば可能ですが。

T_top
質問者

補足

そもそもの理由は・・・・ BASICインタープリターでプログラムを作っています。 プログラムの中で、保存したファイルの容量を把握したい時、 一旦DOSコマンドレベルでDIRをファイルにフィルタし、 そのファイルをOPENして判断しています。 このとき、Windows95やXPでは読み込んだ文字列の 13バイト目から10文字分を取得すればファイルの容量となります。 しかし、Windows98SEでは13バイト目から14文字分となり OSによってプログラムを書き換えないといけないからです。 ところで、フィルタープログラムのことまったく何のことか わかりません。お時間の許す限り教えてください。

すると、全ての回答が全文表示されます。

関連するQ&A