我正在编写一个命令脚本,它将某个文件的文件大小存储为变量,以便稍后在脚本中输出。
除非命令的(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。
谢谢
答案 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