有人可以告诉我一个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
的文件大小。
答案 0 :(得分: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
答案 1 :(得分: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%