ID登録せずに、無料で質問できる♪ 教えて!gooアプリ>>

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

A 回答 (1件)

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



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

※このBATは、変数FNAMEに設定したファイルのサイズを表示します。
    • good
    • 5
この回答へのお礼

ありがとうございます!
うまくいきました!!

お礼日時:2009/07/27 18:39

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

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

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

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

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

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

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

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

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

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

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

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

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

dir /s

だけで良いと思われます。

Qwindow コマンドでファイルサイズを取得

あるファイルとあるファイルのサイズを比較して同じか異なるかで
分岐したいのですがどういった書き方をすれば
よいでしょうか?

for %%A in ("ファイル名") do if %%~zA EQU "バイト数" (goto A) else (goto chkErr)

で具体的な数字と比較できるのはわかっているのですが・・・

Aベストアンサー

そこまでわかっているのなら、あと一歩。

for %%A in ("ファイル名") do for %%B in ("ファイル名その2") do if %%~zA EQU %%~zB (goto A) else (goto chkErr)

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ファイルサイズ判定バッチ

バッチファイルが苦手&初心者なもので、ご教授ください。
あるパスにあるファイルサイズが0KBであれば、バッチファイルを実行。もしそれ以外であれば、何も処理をしないというバッチファイルを作成したいのですが、よくわかりません。
ご教授ください。

Aベストアンサー

一例ですが、以下で可能かと思います。

FOR %%I IN ("ファイルパス") DO IF %%~zI==0 CALL バッチファイル

QDOSコマンドでファイルサイズを取得しました。これをキロバイト表示しするには?

for %%i in (\\xx.xxx.xxx.xx\hoge\*.*) do (
echo %%i %%~zi >> clear_log.txt
type nul > %%i
)

とあるフォルダ内のファイル名、ファイルサイズをログファイルに
書き出した後、ファイルを0バイトにクリアしています。
この時「%%~zi」で取得したファイルサイズはバイト表示ですが、
見づらいため、キロバイト表示にしたいと思います。

どうしたら良いでしょうか。

Aベストアンサー

違う!!
割るんでした・・・。

Q0バイトファイルの判断

Windowsのバッチ処理についての質問です。
バッチから0バイトファイルを判断し削除するというようなものを作りたいです。
例えば、
C:\TEMP内にある0バイトのファイルを全て削除
上記のようなものをif文等で判断させることは可能でしょうか?

OS:WindowsXP

以上、よろしくお願いいたします。

Aベストアンサー

追記

必ず「fcとfindがちゃんと動いている」のを確認してから実行すること。

本番の実行前に
del %1
の行を
echo %1 >> result.txt
に変更しておき、最初にいきなりファイルを消させず、消すはずのファイル一覧をresult.txtに出力させておき、result.txtに希望通りの結果がリストされたか確認しておく事。

確認して消してはいけないモノが消される対象になってないか確認し、確認してから変更した行を
del %1
に戻して、本番実行すること。

間違って消しちゃいけないファイルが消されても責任は取れないので、実行は自己責任で、バックアップを取ってから行なうこと。

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Qコマンドプロンプトでファイルサイズで条件分け

コマンドプロンプトで、例えば指定したフォルダ内で100MB以下のファイルは、
削除すると言うような条件分けは出来るでしょうか?

Aベストアンサー

一例:

for %f in (*.*) do @if %~zf lss 104857600 del "%~f"

Qバッチファイルで昨日の日付を取得

すみません、どなたか教えて下さい。

バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。
今日の日付は下記のように取得しています。

rem 日時変数の取得
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do (set YYYYMMDD=%%a%%b%%c
)

Aベストアンサー

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)
echo 昨日は、%yy%年%mm%月%dd%日です。

echo.
pause
:: ----- prevdate.bat おわり -----

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if...続きを読む


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

人気Q&Aランキング