2012-08-26 47 views
3

有誰請告訴我的Windows 7 shell命令這將需要一個文件路徑作爲參數,返回文件的大小 - 是這樣的:命令得到該文件的大小

fileSize.cmd file.txt 

...這會給我1KB

SO中的一個問題提到了命令echo %~z1,但爲此,我必須編寫一個單獨的批處理文件並在其中使用此命令。我正在考慮修改我現有的bat文件並以某種方式合併此命令。我的批處理文件看起來像這樣:

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

我必須在現有的bat文件添加上面的命令找到diff_out.txt文件大小。

回答

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 
+0

它的工作原理!謝謝你,Jeb!我很感激!! –

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% 
+0

+1,有點複雜,但技術很好 – jeb

相關問題