新手问题 bat 中函数的返回值

lzm110 · June 04, 2013 · Last by luikore replied at June 07, 2013 · 5046 hits
:set /a nFileSize=0
(
call :getFileSize D:\test1\sendszl2data\20111031\SZSEL2-20111031.tar.gz
call :getFileSize D:\test1\sendszl2data\20111031\SZSEL2-20111031.tar.gz
echo %nFileSize%
)

(
call :getFileSize D:\test1\sendszl2data\20111031\SZSEL2-20111031.tar.gz
echo %nFileSize%
)

pause


:获取指定文件的大小
:getFileSize
@echo off
set strFilePath=%1%
set /a nFileSize=0
for /f "delims=" %%i in ('dir  %strFilePath% /s/b') do set  nFileSize=%%~zi
echo infun %nFileSize%
goto :EOF

为什么第一次结果是错的?

batch 太难搞了... 在 stackoverflow.com 上问才会有会用的给你回答。

建议用 ruby 解决:

puts File.stat('D:\test1\sendszl2data\20111031\SZSEL2-20111031.tar.gz').size

#1 楼 @luikore puts 把数据放哪里了 怎么用怎么取啊

#2 楼 @lzm110 puts 是打印...

a_var = File.stat('D:\test1\sendszl2data\20111031\SZSEL2-20111031.tar.gz').size
puts a_var

你可以到 http://rubyinstaller.org/ 下载一个 ruby 玩玩

或者直接到 http://www.ruby-lang.org/zh_cn/ 上试用下

You need to Sign in before reply, if you don't have an account, please Sign up first.