1

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

除非命令的 (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% 

关于这里需要使用什么语法的任何想法?原谅我的无知我是新手。

谢谢

4

1 回答 1

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
于 2013-02-08T20:03:10.883 回答