带有空格的文件名导致缺少操作数

Posted

技术标签:

【中文标题】带有空格的文件名导致缺少操作数【英文标题】:file name with Space causing missing operand 【发布时间】:2013-02-10 13:43:29 【问题描述】:

尝试进行批处理以显示文件的文件大小。 我在另一篇文章 (How can I check the size of a file in a Windows batch script?) 中找到了一个(几乎)完美的解决方案,但是每当我输入带有空格的文件名时,我都会在“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

例如,[Royals] 有效,但 [True Lies] 无效。我尝试了几种引号等组合,但无法使其正常工作。可能缺少一些小东西,但有人可以帮忙吗? 谢谢 抢

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢,是的。我刚刚通过删除 usebackq 找到了另一种方法: (FOR %%A IN (%fname%) DO set size=%%~zA) 但不确定这是否会导致问题,所以我会使用你的。非常感谢 请接受他的回答(绿色勾号)以表明您的问题或疑问已得到解答。 @Kay 有时我不知道自己在想什么。

以上是关于带有空格的文件名导致缺少操作数的主要内容,如果未能解决你的问题,请参考以下文章

Bash:在行尾查找带有尾随空格的文件

Linux之删除带有空格的文件(而不是目录)

使用 robocopy 复制文件(长名称和路径,以及许多空格) - 缺少参数

2018-5-23-踩坑

捆绑显示名称缺少空格字符

处理 argparse 输入中的空格