出産前後の痔にはご注意!

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

カレントドライブ、カレントフォルダを


C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。
    • good
    • 11
この回答へのお礼

ありがとうございます。
これでなんとかできるかもしれません。

お礼日時:2004/10/07 14:10

・自前でプログラム作成する。


・スクリプト処理(?)できる言語などでdir結果を処理する。
・そういうソフトを探してみる。

などでしょうか。

FS
http://www.vector.co.jp/soft/dos/util/se008960.h …

なんてのですと、Windows2000で普通に使う分には使えました。

参考URL:http://www.vector.co.jp/soft/dos/util/se008960.h …
    • good
    • 2
この回答へのお礼

ありがとうございます。
#2さんのほうほうでなんとかやりくりできそうです。

お礼日時:2004/10/07 14:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qコマンドプロンプトでフォルダの容量を表示させるには

コマンドプロンプトを使って指定したフォルダ直下のファイルやフォルダの各容量を表示させたいです。
dir "フォルダ名" /s a-dを実行すると以下の様に表示できることから
-------------------------------------------
"xxxのディレクトリ"
xxx
xxx
xxx
xxx
n個のファイル xxxバイト
--------------------------------------------

パイプを使って以下の様なイメージでfindでor条件を使い、フォルダ名とバイト数を表示させたいのですが、findにはor条件がないという噂を聞き、落胆しています。

(コマンドのイメージ)---------------------------------
dir "フォルダ名" /s a-d | find "のディレクトリ"or"バイト"

---------------------------------------------------
(結果のイメージ)-----------------------------------
"xxxのディレクトリ"
n個のファイル xxxバイト

"xxxのディレクトリ"
n個のファイル xxxバイト

"xxxのディレクトリ"
n個のファイル xxxバイト

ファイルの総数:
     xxx個のファイル   xxxxバイト
xxx個のディレクトリ   xxxxxバイトの空き容量
---------------------------------------------------

上の様なイメージで出力できるようなコマンド、どなたか教えて下さい。
宜しくお願いします。

コマンドプロンプトを使って指定したフォルダ直下のファイルやフォルダの各容量を表示させたいです。
dir "フォルダ名" /s a-dを実行すると以下の様に表示できることから
-------------------------------------------
"xxxのディレクトリ"
xxx
xxx
xxx
xxx
n個のファイル xxxバイト
--------------------------------------------

パイプを使って以下の様なイメージでfindでor条件を使い、フォルダ名とバイト数を表示させたいのですが、findにはor条件がないという噂を聞き、落胆しています。

(コマ...続きを読む

Aベストアンサー

こんにちは。

findの代わりにfindstrをつかわれたらどうでしょうか。

dir /s /a-d | findstr /L "ディレクトリ ファイル"

Qバッチファイルでディレクトリの使用容量を取得したい

バッチファイルでディレクトリの使用容量を取得したい

バッチファイル初心者です。

下記の様に、Sドライブの配下に、Afolder~Efolderまで、複数フォルダーがあります。

S:\Afolder
S:\Bfolder
S:\Cfolder
S:\Dfolder
S:\Efolder

A~Eまで、それぞれフォルダーの使用容量を日々チェックをしたいのですが、
フォルダーのプロパティから確認すると、複数フォルダーがあるので、結構面倒です。
バッチファイルで、複数フォルダーの使用容量を一括で取得出来たら便利だと思いますが、
バッチフォルダーはほとんど分かりません。

どなたか、分かる方教えてください。
よろしくお願いします。

Aベストアンサー

No.3です。

使用しているOSが XP Pro ということでデスクトップにsizelist.txtというファイルを
出力するよう修正してみましたのでご確認ください。


:--------------------------------------------------

echo off
set fname="%USERPROFILE%\デスクトップ\sizelist.txt"
if exist %fname% del %fname%
pushd s:\
for /D %%d in (*) do call :sub "%%d"
exit /b

:sub
for /F "tokens=3 delims= " %%a in ('dir /s %1 ^| find "個のファイル"') do set size=%%a
echo %1,"%size%">>%fname%
goto :EOF

:--------------------------------------------------

QDOSプロンプトでのファイルサイズの取得

こんにちは
MS DOSプロンプトでファイルサイズの取得の仕方がわかりません。
個人的には、バッチファイルを作って、ある特定のファイルのサイズを
バイト単位で表示させたいと思っているのですが、
どうしてもうまくいきません。
どなたか教えていただけないでしょうか。
アドバイスお願いします。

Aベストアンサー

目的がよくわからないのですが、指定ファイルのサイズを表示するだけなら・・・

@ECHO OFF
SET FNAME=D:\Sample.txt
CALL :SUB %FNAME%
GOTO :EOF
:SUB
ECHO %~z1バイト
EXIT /B

※このBATは、変数FNAMEに設定したファイルのサイズを表示します。

Qディスク上のサイズとサイズはどうして違うんですか?

ファイルのプロパティ「全般」タブに表示されている「サイズ」と「ディスク上のサイズ」は、どっちが本当のサイズなのでしょうか?
どうしてサイズが違うのですか?
メールでファイルを送るときは、どっちのサイズを見ればいいのでしょうか?
これについて詳しく解説しているページがあったら、それもぜひ教えて下さい。
よろしくお願いします。

Aベストアンサー

「サイズ」はファイルの本当の大きさ、
「ディスク上のサイズ」はファイルが記録されているクラスタを合計した大きさです、
OSはファイルを幾つかのクラスタ(OSが管理するハードディスク上のブロック
の最小単位)を使ってHDDなどのメディアに保存します、

基本的に今のWindowsでは4KBのクラスタサイズで管理しているので例え1バイトのファイルでも「ディスク上のサイズ」4KBのサイズになってしまいます、
つまり常に「ディスク上のサイズ」の方が大きくなっているはずです、

メールに添付する場合は「サイズ」を確認するだけでOKです。

Qテキストファイルから最終行の抽出

テキストファイルに出力された内容のうち、
最終行のみ抽出し、他のテキストファイルに
落とし込みたいと考えています。

DOSコマンドを使用して実現したいと思うのですが
良い方法などございましたら、ご教授ください。

宜しくお願い致します。

※OSはWindows Server 2003を使用しています。

Aベストアンサー

98SEから2003までのすべてのWindowsに標準搭載されているコマンドでFORと>(リダイレクト)を使って出来ます。

FOR /F "TOKENS=1*" %A IN ([元ネタファイル名]) DO ECHO %A > [出力先ファイル名]

 (大カッコ([ ])は必要ありませんが、普通のカッコ( () ) は必要です。)

 元ネタのファイルサイズが大きかったら少々思い処理になるかもしれませんが、所詮テキストファイルですので、極端に時間がかかるものでもないでしょう。

 なお、元ネタのファイルはSVS形式などのファイルだと思いますが、そうだとするとフィールドの区切り文字をそのデータ内に含まれないものにするといいですね。FORのなかに" "で囲まれた部分がありますが、そこに 「delims=...」などとデータ内に無い文字列を指定します。"TOKENS=1* delims=..."というようにTOKENSとはスペース区切りで追加します。
(今回、元ネタのデータがどういうものか分からないのではっきりとした答えを書きようがありません。データの形式によっては例外処理対応をする必要もあります。

 バッチで組むならもっと軽くする方法はありますね。なお、その際、FORの内部変数を%%Aとする必要がありますので気をつけましょう。今回はコマンドラインでということですので、コマンドライン1行で出来るものとしています。

98SEから2003までのすべてのWindowsに標準搭載されているコマンドでFORと>(リダイレクト)を使って出来ます。

FOR /F "TOKENS=1*" %A IN ([元ネタファイル名]) DO ECHO %A > [出力先ファイル名]

 (大カッコ([ ])は必要ありませんが、普通のカッコ( () ) は必要です。)

 元ネタのファイルサイズが大きかったら少々思い処理になるかもしれませんが、所詮テキストファイルですので、極端に時間がかかるものでもないでしょう。

 なお、元ネタのファイルはSVS形式などのファイルだと思いますが、そう...続きを読む

QXCOPYで指定したフォルダとファイルをコピーしたい

C:\AAAフォルダとC:\AAA以下のファイルをコピーしたくて、
XCOPY C:\AAA D:\BBB /E
とすると、コピー先のD:\BBBにはAAAフォルダにあるファイルはコピーされるのですが、AAAフォルダそのものはコピーされません。
XCOPY C:\ D:\BBB /E
とすればコピーできるのですが、そうするとC:\のほかのフォルダもコピーされてしまいます。
EXCLUDEオプションを使うには指定するファイルが多いため、あまり使いたくありません。(コピーする前にMDでコピー先にAAAフォルダを作成するのもなるべく避けたい)
知っている方がいらしたら教えて下さい。

Aベストアンサー

xcopy /e C:\AAA D:\BBB\AAA
複数ファイルのコピーでコピー先が存在しないとき、ファイル名と見なすかディレクトリ名と見なすか聞いてきます。

応答を聞かれるのが嫌なら
echo d | xcopy /e C:\AAA D:\BBB\AAA
でいいはず。

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

こんな感じでどうでしょうか。

QMS-DOSコマンドプロンプトを途中で止める

SQLPlusで、MS-DOSコマンドプロンプトを使用する場合、SELECT分の抽出があいまいすぎて大量のデータが結果として表示される場合、途中でキャンセルはできないのでしょうか?現状、出力が終えるまでぼけーって待ってます。
今回の質問のようにMS-DOSコマンドプロンプトのコマンドが他にもありましたら教えてください。

Aベストアンサー

プログラムの作りにもよりますが、
「Ctrl+C」で停止
「Ctrl+S」で一時停止
出来ないでしょうか?

Q共有ドライブの使用容量・空き容量をエクスプローラで知る方法

家庭内LANでWindows2000SP4 とWindowsXP Pro SP2 の2台のPCを使っています。
それぞれのDドライブを丸ごと共有させており,お互いにDドライブにアクセスできるようにしています。

2k側からXPのDドライブをエクスプローラで見ると,ローカルドライブと同じようにエクスプローラの左側に合計サイズや使用容量などが円グラフで表示されています。

しかしXP側から2kのDドライブを見ても,左の「詳細」にはDとだけしか表示されていません。円グラフはともかく,XPのエクスプローラで,ローカルドライブと同じように「詳細」に容量を表示させることはできませんか?

ドライブ共有は,2kはドライブ→右クリック→「共有」で特にオプションは変更していません。XPは「簡易ファイルの共有」をオンにした状態で「共有」を行っています。

XPで容量表示についてご存知の方よろしくお願いします。

Aベストアンサー

ネットワークドライブに割り当てることで、可能になります。
ネットワークドライブとは、共有先のDBを自分のマシンの1ドライブとしてみたてて使用するドライブのことです。

1.エクスプローラのメニューバーの「ツール」-「ネットワークドライブの割り当て」を選択する。

2.ドライブ(D)は、ドライブ名を割り当てる(デフォルトでOK)
3.フォルダ(O)は、参照ボタンを押下し、2KのDを選択する。
4.完了ボタンを押す。

これでネットワークドライブの割り当てができました。

エクスプローラを開いて、マイコンピュータを開くと、
通常のドライブのほかに割り当てたドライブが表示されるので、
これを選択すると、ご要望どおり、詳細で容量が見られるようになります。

Qバッチでテキストファイルから任意の行のみ取得したい

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数Textに入れる(set Text=222)
4.変数Textを使用し色々処理をする
-----------------------------------------
コレを繰り返します。
2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。
n行目を全て取り出す方法がわかれば行けると思うのですが、
どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数T...続きを読む

Aベストアンサー

No3ですが、たぶん提示したスクリプトを見ると、ある事に気がつくはず?

findstr /n /r "." a.txt | findstr /r "^3:"

で3行目を表示してくれます。え!? それだけ。そうなんです

ただ、あと、先頭の”3:” をどうやって切り離すか? と言う問題にぶつかる。さらにファイルに先頭に”3:”があった場合、どうするのか? さらに、findstr の正規表現の動作が??? 表示すれるのはいいが、変数にどうやってセットするのか?

となる。結局 for 文を使いまわす事になります。

まあ、適当に改変して、上記の問題を解決してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング