“for”命令不在(set)元素中使用空格

时间:2013-02-08 16:41:25

标签: for-loop command set

我正在编写一个命令脚本,它将某个文件的文件大小存储为变量,以便稍后在脚本中输出。

除非命令的(set)部分指向其中包含空格的路径,否则我可以使其完美地工作。

这有效:

for /F %%A in ("%userprofile%\desktop\test2\test.jpg" ) do If %%~zA GTR 0 set INITIALSIZE=%%~zA 
msg "%username%" size of file: %INITIALSIZE% 

打开一个文件大小为test.jpg的对话框。

如果我将'test2'文件夹的名称更改为'test 2',它就会停止工作。它永远不会将值存储到INITIALSIZE中。这是必需的,因为最终脚本指向的实际路径位于Program Files中。

这些不起作用:

for /F %%A in ("%userprofile%\desktop\test 2\test.jpg" ) do If %%~zA GTR 0 set INITIALSIZE=%%~zA 
msg "%username%" size of file: %INITIALSIZE% 

for /F %%A in (""%userprofile%\desktop\test 2\test.jpg"" ) do If %%~zA GTR 0 set INITIALSIZE=%%~zA 
msg "%username%" size of file: %INITIALSIZE% 

for /F %%A in ("%userprofile%\desktop\"test 2"\test.jpg" ) do If %%~zA GTR 0 set INITIALSIZE=%%~zA 
msg "%username%" size of file: %INITIALSIZE% 

for /F %%A in ("'%userprofile%\desktop\test 2\test.jpg'" ) do If %%~zA GTR 0 set INITIALSIZE=%%~zA 
msg "%username%" size of file: %INITIALSIZE% 

有关需要在何处使用语法的任何想法?原谅我的无知我是Newb。

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个如何做到这一点的例子

@echo off
set file1="d:\new folder\test.jpg"
call :getfilesize %file1% size
echo %size%
goto :eof

:getfilesize %a
set size=%~z1
goto :eof