3

ファイルパスを引数として取り、そのファイルのサイズを返すWindows 7用のシェルコマンドを教えてください。

fileSize.cmd file.txt

...それは私に与えるでしょう1KB

SO の 1 つの質問で commandecho %~z1が指摘されましたが、このためには別のバッチ ファイルを作成し、その中でこのコマンドを使用する必要があります。私は既存のbatファイルを変更して、このコマンドを何らかの方法で組み込むことを考えていました。私のバッチファイルは次のようになります。

p4 diff //sources/j2cs/output.txt >> diff_out.txt

のファイルサイズを見つけるには、既存のバッチファイルに上記のコマンドを追加する必要がありますdiff_out.txt

4

2 に答える 2

9

追加のバッチファイルは必要ありません。関数を呼び出してファイル名を%1に移動するか、FORループを使用できます。

call :getFilesize diff_out.txt
echo %fileSize%
exit /b

:getFilesize
set filesize=%~z1
exit /b

または

for %%A in (diff_out.txt) do set fileSize=%%~zA
于 2012-08-26T20:34:24.090 に答える
1

別のバリアント:

@echo off

set file=c:\bookmarks.html

%1 %0 :: %file%
set len=%~z2
echo %len% 

pause

またはwmicを使用:

D:\>set wql="drive='g:' and filename='function2' and extension='txt'"

D:\>wmic path cim_datafile where %wql% get name,filesize
FileSize  Name
621       g:\function2.txt

D:\>

また:

set file=G:\function2.txt

echo set len=%%~z1 >_tmp.bat
call _tmp.bat %file% && del _tmp.bat
echo %len%
于 2012-08-29T11:35:05.350 に答える