2013-02-08 30 views
1

我正在研究一個命令腳本,它將某個文件的文件大小作爲變量存儲,以便稍後在腳本中輸出它。「for」命令不能在(設置)元素中使用空格

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

什麼語法這裏需要使用任何想法?原諒我的無知我是一個新人。

感謝

回答

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 
相關問題