2013-02-10 35 views
0

试图进行批处理以显示文件的文件大小。 我发现在另一篇文章(How can I check the size of a file in a Windows batch script?),但每当我输入文件名用空格,我得到“Missing操作数”的“FOR”(几乎)完美地解决排队带空格的文件名导致缺失操作数

我已经在一批像这样实现的:

echo off 
set /p title="Enter Film title: " %=% 
set sum1=0 
set fname="C:\Users\Public\Videos\ripped\%title%.mkv" 
FOR /F "usebackq" %%A IN ('%fname%') DO set size=%%~zA 
set /a sum1=%size%/1000000 
echo Finished %title%.mkv, Size %sum1%Mb 

因此,例如,[皇家]的作品,但[真的谎言]没有。我已经尝试过几种引号等组合,但无法让它起作用。可能缺少一些小东西,但任何人都可以帮忙? 感谢 罗布

回答

0

尝试FOR /F "usebackq tokens=*" %%A IN ('%fname%') DO set size=%%~zA

+0

谢谢,是的,这工作。我只是通过删除usebackq来找到另一种方法:(FOR %% A IN(%fname%)DO set size = %%〜zA),但不确定是否会导致问题,所以我会使用你的。非常感谢 – user2058787 2013-02-10 15:05:44

+0

请接受他的回答(绿色勾号),以表明您的问题或疑问已得到解答。 – 2013-02-11 06:13:38

+0

@ProfPickle OP已经接受了答案15小时前 – 2013-02-11 06:37:27