4

これは簡単に聞こえるかもしれませんが、ディレクトリ内のファイルのリストとそのサイズのみをリストしようとしているだけです。オプション dir / help をたくさん試しましたが、うまくいかないようです。助けていただけますか?私も周りを見回しましたが、見つけたのはディレクトリサイズへの参照だけです。

       I want the out put to look like this

       a.txt  21
       b.txt  72
       3.txt  73

よろしくお願いします

4

1 に答える 1

10

コマンドラインから:

for %F in (*) do @echo %F     %~zF

バッチ ファイル内で使用する場合は、パーセントを 2 倍にします。

@echo off
for %%F in (*) do echo %%F     %%~zF

固定幅の場合、幅はそれほど変化しないため、最初にサイズをリストする方がよいでしょう。1 テラバイトには 12 桁でほぼ十分です。ファイル名の長さはさまざまです。

以下は、サイズをバイト単位 (最大 12 桁) で示したバッチ スクリプトで、その後にファイル名が続きます。

@echo off
setlocal disableDelayedExpansion

for %%F in (*) do (
  set "name=%%F"
  set "size=            %%~ZF"
  setlocal enableDelayedExpansion
  echo !size:~-12! !name!
  endlocal
)

遅延展開の切り替えは、!文字が含まれている場合にファイル名が破損するのを防ぐためです。遅延拡張が有効で、値に が含まれている場合、FOR 変数の値は破損します!

于 2013-09-15T20:20:31.540 に答える