Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GetDriveFreeSpace.cmd - Dynamically determine size unit

300 views
Skip to first unread message

19ma...@gmail.com

unread,
Nov 21, 2013, 10:34:59 AM11/21/13
to
I recently needed to write a script to get the free space on all physical drives on some computers that are just standalone. This is easy enough with WMIC but it returns the space in bytes, which isn't very readable. fsutil does the same thing. I wrote the following routines to dynamically determine how large a drive is and based on that what unit it should return to display the size in. I figured I'd post it in case someone else can use it since I've never seen anyone else do it. (At least I couldn't find anything in all of my searching.)

@echo off
setlocal enabledelayedexpansion

Echo %date% - %time%
set wmi=WMIC LogicalDisk Where DriveType='3' Get DeviceID,FileSystem,FreeSpace,Size^|Find ":"
for /f "tokens=1,3,4" %%a in ('"%wmi%"') do (
for /f "tokens=1,2,3" %%b in ("%%a %%b %%c") do (
call :GetUnit %%c ufree
call :Convertbytes %%c !ufree! free
call :GetUnit %%d usize
call :Convertbytes %%d !usize! size
Echo %%b Free space: !free! !ufree! of !size! !usize!
)
)
exit /b


:ConvertBytes bytes unit ret
setlocal
if "%~2" EQU "KB" set val=/1024
if "%~2" EQU "MB" set val=/1024/1024
if "%~2" EQU "GB" set val=/1024/1024/1024
if "%~2" EQU "TB" set val=/1024/1024/1024/1024
> %temp%\tmp.vbs echo wsh.echo FormatNumber(eval(%~1%val%),0)
for /f "delims=" %%a in (
'cscript //nologo %temp%\tmp.vbs'
) do endlocal & set %~3=%%a
del %temp%\tmp.vbs
exit /b

:GetUnit
setlocal
if %1 LEQ 1024 set "unit=Bytes"
if %1 GTR 1024 if %1 LEQ 1048576 set "unit=KB"
if %1 GTR 1048576 if %1 LEQ 1073741824 set "unit=MB"
if %1 GTR 1073741824 if %1 LEQ 1099511627776 set "unit=GB"
if %1 GTR 1099511627776 if %1 LEQ 1125899906842624 set "unit=TB"
endlocal & set %~2=%unit%
exit /b

Frank Westlake

unread,
Nov 21, 2013, 11:00:16 AM11/21/13
to
Nice work!

Frank

billious

unread,
Nov 21, 2013, 12:25:40 PM11/21/13
to
Couple of criticisms:

First, the inner FOR/F merely maps %%a,%%b,%%c from the outer loop to
%%b,%%c,%%d in the inner. Better to use the values from the outer loop.

Second, forcing a size like 1099511627777 does not show TB. Since the
calculation is actually performed by vbs, the value is correct, but is
shown as GB, not TB as designed.

Herbert Kleebauer

unread,
Nov 21, 2013, 12:22:36 PM11/21/13
to
On 21.11.2013 16:34, 19ma...@gmail.com wrote:


> :GetUnit
> setlocal
> if %1 LEQ 1024 set "unit=Bytes"
> if %1 GTR 1024 if %1 LEQ 1048576 set "unit=KB"
> if %1 GTR 1048576 if %1 LEQ 1073741824 set "unit=MB"
> if %1 GTR 1073741824 if %1 LEQ 1099511627776 set "unit=GB"
> if %1 GTR 1099511627776 if %1 LEQ 1125899906842624 set "unit=TB"

Isn't the second "if" in each line unnecessary because it is overwritten
in the next line anyhow? Did you ever test "if .. gtr .." for large
numbers? Try this:

@echo off
if 2147483647 gtr 2147483646 (echo 2147483647 is greater than 2147483646
) else (echo 2147483647 is not greater than 2147483646)
if 2147483648 gtr 2147483646 (echo 2147483648 is greater than 2147483646
) else (echo 2147483648 is not greater than 2147483646)
if 2147483648 gtr 2147483647 (echo 2147483648 is greater than 2147483647
) else (echo 2147483648 is not greater than 2147483647)
if 2147483649 gtr 2147483648 (echo 2147483649 is greater than 2147483648
) else (echo 2147483649 is not greater than 2147483648)


> if "%~2" EQU "GB" set val=/1024/1024/1024
>> %temp%\tmp.vbs echo wsh.echo FormatNumber(eval(%~1%val%),0)

Why not just remove the last 9 digits? 1 Gigabyte (GB) are 1000^3 Bytes.
1024^3 Byte are a Gibibyte (GiB). Just because Microsoft does it wrong
(a 4.7 GB DVD is reported as 4.38 GB) you don't have to do it also wrong.


19ma...@gmail.com

unread,
Nov 21, 2013, 1:34:38 PM11/21/13
to

>
> Second, forcing a size like 1099511627777 does not show TB. Since the
>
> calculation is actually performed by vbs, the value is correct, but is
>
> shown as GB, not TB as designed.

You're right. That doesn't make any sense though. Can cmd script not compare large numbers correctly?

call :GetUnit 1099511627778 utmp
echo !utmp!
exit /b

:GetUnit
setlocal
if %1 LEQ 1024 set "unit=Bytes"
if %1 GTR 1024 set "unit=KB"
if %1 GTR 1048576 set "unit=MB"
if %1 GTR 1073741824 set "unit=GB"
if %1 GTR 1099511627776 set "unit=TB"
endlocal & set %~2=%unit%
exit /b

output:

H:\Scripts\batch>setlocal

H:\Scripts\batch>if 1099511627778 LEQ 1024 set "unit=Bytes"

H:\Scripts\batch>if 1099511627778 GTR 1024 set "unit=KB"

H:\Scripts\batch>if 1099511627778 GTR 1048576 set "unit=MB"

H:\Scripts\batch>if 1099511627778 GTR 1073741824 set "unit=GB"

H:\Scripts\batch>if 1099511627778 GTR 1099511627776 set "unit=TB"

H:\Scripts\batch>endlocal & set utmp=GB

H:\Scripts\batch>exit /b
GB

H:\Scripts\batch>exit /b

If that's the case, I might have to resort to VBS for that bit too unless there is something I'm missing.


Frank Westlake

unread,
Nov 21, 2013, 1:44:02 PM11/21/13
to
2013-11-21 09:22, Herbert Kleebauer:
> Isn't the second "if" in each line unnecessary because it is overwritten
> in the next line anyhow?

Yes, but that isn't good programming procedure.

> Why not just remove the last 9 digits?

That wouldn't be good programming procedure, and it wouldn't be
consistent with the units he is using.

> 1 Gigabyte (GB) are 1000^3 Bytes.
> 1024^3 Byte are a Gibibyte (GiB).

That's true for SI, but there are other standards and you haven't asked
which he is using. Here's Wikipedia's statement:

The computer industry is possibly the only industry in which some SI
prefixes have been given definitions inconsistent with the International
System of Units (SI). JEDEC has redefined the prefixes kilo, mega and
giga as powers of 1024 instead of 1000, but not tera or any larger
decimal prefix. With an aim of avoiding confusion, the International
Electrotechnical Commission has defined a different set of binary
names and symbols for the same power-of-1024 units.
<https://en.wikipedia.org/wiki/SI_prefix>

Frank

Frank Westlake

unread,
Nov 21, 2013, 1:53:40 PM11/21/13
to
2013-11-21 10:34, 19ma...@gmail.com:
> You're right. That doesn't make any sense though. Can cmd script not compare large numbers correctly?

You can compare them as strings. Define your numbers to have some
maximum length and prefix each with a bunch of spaces until they are at
that maximum length, then your number comparison will be correct. For
example:

Set "maxLen=20"
Set "prefix= "
For /L %%i in (2,1,%maxLen%) Do Set "prefix= !prefix!"

Now "prefix is 20 spaces.

Set "!num!=!prefix!!num!"
For %%i in (%maxLen%) Do Set "num=!num:~-%%i!"

Untested, but I think that will take the last "maxLen" characters. Then
you can leave the numbers that way so that they will print in nicely
aligned columns.

Frank

19ma...@gmail.com

unread,
Nov 21, 2013, 2:29:44 PM11/21/13
to
On Thursday, November 21, 2013 10:34:59 AM UTC-5, 19ma...@gmail.com wrote:
> I recently needed to write a script to get the free space on all physical drives on some computers that are just standalone. This is easy enough with WMIC but it returns the space in bytes, which isn't very readable. fsutil does the same thing. I wrote the following routines to dynamically determine how large a drive is and based on that what unit it should return to display the size in. I figured I'd post it in case someone else can use it since I've never seen anyone else do it. (At least I couldn't find anything in all of my searching.)
>

Updated Code:

@echo off
setlocal enabledelayedexpansion

Echo %date% - %time%
set wmi=WMIC LogicalDisk Where DriveType='3' Get DeviceID,FileSystem,FreeSpace,Size^|Find ":"
for /f "tokens=1,3,4" %%a in ('"%wmi%"') do (
call :GetUnit %%b ufree
call :Convertbytes %%b !ufree! free
call :GetUnit %%c usize
call :Convertbytes %%c !usize! size
Echo %%a Free space: !free! !ufree! of !size! !usize!
)

exit /b

:ConvertBytes bytes unit ret
setlocal
if "%~2" EQU "KB" set val=/1024
if "%~2" EQU "MB" set val=/1024/1024
if "%~2" EQU "GB" set val=/1024/1024/1024
if "%~2" EQU "TB" set val=/1024/1024/1024/1024
> %temp%\tmp.vbs echo wsh.echo FormatNumber(eval(%~1%val%),0)
for /f "delims=" %%a in (
'cscript //nologo %temp%\tmp.vbs'
) do endlocal & set %~3=%%a
del %temp%\tmp.vbs
exit /b

:GetUnit
setlocal
set out=%temp%\getu.vbs
>%out% echo if %~1 ^<^= 1024 then unit="bytes"
>>%out% echo if %~1 ^> 1024 then unit="Kb"
>>%out% echo if %~1 ^> 1048576 then unit="Mb"
>>%out% echo if %~1 ^> 1073741824 then unit="Gb"
>>%out% echo if %~1 ^> 1099511627776 then unit="Tb"
>>%out% echo wscript.echo unit
for /f "delims=" %%a in (
'cscript //nologo %out%'
) do endlocal & set %~2=%%a
if exist %out% del /f /q %out%
exit /b

Herbert Kleebauer

unread,
Nov 21, 2013, 3:31:13 PM11/21/13
to
On 21.11.2013 20:29, 19ma...@gmail.com wrote:

> Updated Code:

Now you have to VBS calls. Why not do it without VBS at all:

@echo off
call :display 1000
call :display 2000
call :display 1000000
call :display 2000000
call :display 1000000000
call :display 2000000000
call :display 1000000000000
call :display 2000000000000
call :display 1000000000000000
call :display 2000000000000000
goto :eof

:display
set a= k M G T
set i=15
set n=%1
:loop
set /a i=i-3
if %i%==0 (set m=%n%) else call set m=%%n:~0,-%i%%%
if [%m%]==[] goto :loop
if %m% lss 2 goto loop
call echo %m% %%a:~%i%,1%%byte
goto :eof






Herbert Kleebauer

unread,
Nov 21, 2013, 3:32:28 PM11/21/13
to
On 21.11.2013 19:44, Frank Westlake wrote:

>> Isn't the second "if" in each line unnecessary because it is overwritten
>> in the next line anyhow?
>
> Yes, but that isn't good programming procedure.

Why? It makes the code much better readable and I think, the
additional executed set command doesn't consume more time
than the removed if statement. If you worry about speed, you
maybe have to use if-else:

if %1 LEQ 1024 (set "unit=Bytes") else (
if %1 LEQ 1048576 (set "unit=KB") else (
if %1 LEQ 1073741824 (set "unit=MB") else (
if %1 LEQ 1099511627776 (set "unit=GB") else (
if %1 LEQ 1125899906842624 (set "unit=TB") else (
set "unit=such a big disk doesn't exist" )))))



>> Why not just remove the last 9 digits?
>
> That wouldn't be good programming procedure,

If you have a decimal number in ascii representation
and want to divide it by 1000, then it is a bad idea
to convert the string to an integer then dived it by
1000 and convert the result back to ascii. It is much
better to just remove the last 3 digits.

> That's true for SI, but there are other standards and you haven't asked
> which he is using. Here's Wikipedia's statement:
>
> The computer industry is possibly the only industry in which some SI
> prefixes have been given definitions inconsistent with the International
> System of Units (SI). JEDEC has redefined the prefixes kilo, mega and
> giga as powers of 1024 instead of 1000, but not tera or any larger
> decimal prefix. With an aim of avoiding confusion, the International

Do you really suggest to divide by 1024 for kB, by 1024^2 for MB, by
1024^3 for GB but by 1000^4 for TB? That doesn't make any sense .

Do you know of any harddisk manufacturer who doesn't use 1000^3
but 1024^3 for GByte.

19ma...@gmail.com

unread,
Nov 22, 2013, 7:18:21 AM11/22/13
to
> @echo off
>
> call :display 1000
>
> call :display 2000
>
> call :display 1000000
>
> call :display 2000000
>
> call :display 1000000000
>
> call :display 2000000000
>
> call :display 1000000000000
>
> call :display 2000000000000
>
> call :display 1000000000000000
>
> call :display 2000000000000000
>
> goto :eof
>
>
>
> :display
>
> set a= k M G T
>
> set i=15
>
> set n=%1
>
> :loop
>
> set /a i=i-3
>
> if %i%==0 (set m=%n%) else call set m=%%n:~0,-%i%%%
>
> if [%m%]==[] goto :loop
>
> if %m% lss 2 goto loop
>
> call echo %m% %%a:~%i%,1%%byte
>
> goto :eof

When I run this, I just get:

H:\Scripts\Batch>if 12 == 0 (set m=1000 ) else call set m=%n:~0,-12%
]==[] was unexpected at this time.

H:\Scripts\Batch>if [ ]==[] goto :loop

foxidrive

unread,
Nov 22, 2013, 7:40:23 AM11/22/13
to
On 22/11/2013 23:18, 19ma...@gmail.com wrote:

> When I run this, I just get:
>
> H:\Scripts\Batch>if 12 == 0 (set m=1000 ) else call set m=%n:~0,-12%
> ]==[] was unexpected at this time.
>
> H:\Scripts\Batch>if [ ]==[] goto :loop
>


It works as it is posted, when I try it here in Windows 8.1

How are you running it? Try copy and pasting it again.


19ma...@gmail.com

unread,
Nov 22, 2013, 10:01:52 AM11/22/13
to

>
> It works as it is posted, when I try it here in Windows 8.1
>
>
>
> How are you running it? Try copy and pasting it again.

Hmm. I get the same result. Odd. I'm running win7 32 bit. Everything looks like it should work from just eyeballing it.

Herbert Kleebauer

unread,
Nov 22, 2013, 11:08:13 AM11/22/13
to
On 22.11.2013 13:18, 19ma...@gmail.com wrote:


> When I run this, I just get:
>
> H:\Scripts\Batch>if 12 == 0 (set m=1000 ) else call set m=%n:~0,-12%
> ]==[] was unexpected at this time.



>> if %i%==0 (set m=%n%) else call set m=%%n:~0,-%i%%%

I suppose there is a space after the last % in the line above
in your version. Remove it.

foxidrive

unread,
Nov 22, 2013, 11:23:58 AM11/22/13
to
Google groups corrupts code in Usenet, by adding characters. Use a real usenet client to avoid that.

big_jon...@lycos.co.uk

unread,
Nov 22, 2013, 12:31:54 PM11/22/13
to
On Thursday, 21 November 2013 19:29:44 UTC, 19ma...@gmail.com wrote:
>
> Updated Code:
>
> <snip />
> set wmi=WMIC LogicalDisk Where DriveType='3' Get DeviceID,FileSystem,FreeSpace,Size^|Find ":"
>
> for /f "tokens=1,3,4" %%a in ('"%wmi%"') do (
> <snip />

Why use WMIc to retrieve FileSystem if you're not using it?
Although it may be possible I find it highly unlikely the there will be fixed disks on any machine running WMIc which will have a capacity in any unit smaller than GB, (it's rare to have a removable drive these days with capacities smaller than 1GB).

Just for information here's a little Powershell script:

#----- START DRVSIZES.PS1 -----
$TotalGB = @{Name="Capacity(GB)";expression={[math]::round(($_.Size/ 1073741824),1)}}
$FreeGB = @{Name="FreeSpace(GB)";expression={[math]::round(($_.FreeSpace / 1073741824),1)}}
$FreePerc = @{Name="Free(%)";expression={[math]::round(((($_.FreeSpace / 1073741824)/($_.Size / 1073741824)) * 100),0)}}
Get-WmiObject Win32_LogicalDisk -filter "DriveType=3" | Select DeviceID, FileSystem, $TotalGB, $FreeGB, $FreePerc | Format-Table -AutoSize
Read-Host "Press ENTER to Exit "
#------ END DRVSIZES.PS1 ------

Each line is prefixed with two spaces to prevent word wrapping, 5 lines total.

CRNG

unread,
Nov 22, 2013, 2:27:26 PM11/22/13
to
On Sat, 23 Nov 2013 03:23:58 +1100, foxidrive
<foxi...@server.invalid> wrote in
<528f851f$0$61207$c3e8da3$5e5e...@news.astraweb.com> Re Re:
GetDriveFreeSpace.cmd - Dynamically determine size unit:
It's easy to identify Google Group posters when they quote, as GG
seems to add blank lines after all the lines that it quotes. Does
anyone know why? It's certainly getting annoying to see.
--
Web based forums are like subscribing to 10 different newspapers
and having to visit 10 different news stands to pickup each one.
Email list-server groups and USENET are like having all of those
newspapers delivered to your door every morning.

Todd Vargo

unread,
Nov 22, 2013, 4:54:00 PM11/22/13
to
On 11/22/2013 2:27 PM, CRNG wrote:
> On Sat, 23 Nov 2013 03:23:58 +1100, foxidrive
> <foxi...@server.invalid> wrote in
> <528f851f$0$61207$c3e8da3$5e5e...@news.astraweb.com> Re Re:
> GetDriveFreeSpace.cmd - Dynamically determine size unit:
>
>> On 23/11/2013 02:01, 19ma...@gmail.com wrote:
>>>
>>>>
>>>> It works as it is posted, when I try it here in Windows 8.1
>>>>
>>>>
>>>>
>>>> How are you running it? Try copy and pasting it again.
>>>
>>> Hmm. I get the same result. Odd. I'm running win7 32 bit. Everything looks like it should work from just eyeballing it.
>>>
>>
>> Google groups corrupts code in Usenet, by adding characters. Use a real usenet client to avoid that.
>
> It's easy to identify Google Group posters when they quote, as GG
> seems to add blank lines after all the lines that it quotes. Does
> anyone know why? It's certainly getting annoying to see.
>

We have been down this road multiple times with no joy. The problem was
reported to GG but they just ignore the reports. You can try it again
though. In the mean time, all we can do is inform the GG users of the
problem when they have problems with posted code.

--
Todd Vargo
(Post questions to group only. Remove "z" to email personal messages)

JoeBro

unread,
Nov 23, 2013, 5:44:09 AM11/23/13
to
Todd Vargo <tlv...@sbcglobal.netz> wrote in news:l6ojpn$59e$1
@news.albasani.net:

>> It's easy to identify Google Group posters when they quote, as GG
>> seems to add blank lines after all the lines that it quotes. Does
>> anyone know why? It's certainly getting annoying to see.
>>
>
> We have been down this road multiple times with no joy. The problem was
> reported to GG but they just ignore the reports. You can try it again
> though. In the mean time, all we can do is inform the GG users of the
> problem when they have problems with posted code.
>

I prefer to just kill-file the GG posters that don't clean up their
quoting.

foxidrive

unread,
Nov 23, 2013, 7:24:13 AM11/23/13
to
I pretended I was a google poster. pmsl...

19ma...@gmail.com

unread,
Nov 26, 2013, 9:25:52 AM11/26/13
to
On Thursday, November 21, 2013 10:34:59 AM UTC-5, 19ma...@gmail.com wrote:
> I recently needed to write a script to get the free space on all physical drives on some computers that are just standalone. This is easy enough with WMIC but it returns the space in bytes, which isn't very readable. fsutil does the same thing. I wrote the following routines to dynamically determine how large a drive is and based on that what unit it should return to display the size in. I figured I'd post it in case someone else can use it since I've never seen anyone else do it. (At least I couldn't find anything in all of my searching.)

I updated the GetUnit function to do a string comparison when over a gigabyte and now it works correctly for Terabytes.

:GetUnit bytes return
set byt=00000000000%1X
set TB=000000000001099511627776X
if %1 LEQ 1024 set "unit=Bytes"
if %1 GTR 1024 set "unit=KB"
if %1 GTR 1048576 set "unit=MB"
if %1 GTR 1073741824 set "unit=GB"
if %byt:~-14% GTR %TB:~-14% set "unit=TB"

Fellow

unread,
Dec 24, 2013, 5:59:57 PM12/24/13
to
<19ma...@gmail.com> wrote in message
news:558112df-f0e3-477d...@googlegroups.com...
---------------------------------------------------------
Nice work!

Could you (or somebody else) make a little development in this batch? I hope
it's show result like this; Driveletter, Label of disk, Total diskspace,
Used diskspace, Free diskspace and finaly Percent free of diskspace.

---
Fellow


mokomoji

unread,
Jan 16, 2014, 5:47:26 PM1/16/14
to
@echo off
setlocal
set sum=0
call set ivar=" KMGTPH"
for /f "usebackq skip=1 tokens=3 delims= " %%f in (`WMIC LogicalDisk Where DriveType^="3" Get DeviceID^, FileSystem^, FreeSpace^, Size`) do (
call set /a sum=+1
echo %%f-----original
call :bigarr %%f
call :bigint

call echo SOME : %%zvar3%%.%%zvar4%% %%ivar2%%BYTE
)
goto :end

:bigint
for /f "usebackq tokens=2,4 delims==." %%g in (`set var`) do (
call set xvar2=%%h
call set sumh=%%g
if "%%h" lss "100" call set xvar2=%%xvar2:~1,2%%
if "%%h" lss "010" call set xvar2=%%xvar2:~-1%%
if "%%g" neq "1" call set /a xvar2=%%xvar2%%*950
call set /a zvar3=%%zvar3%%+%%xvar2%%
call set zvar4=0
if "%%g" neq "1" (
call set /a zvar4=%%zvar3%% %%%%1024
call set /a zvar3=%%zvar3%%/1024
)
)
call set ivar2=%%ivar:~%sumh%,1%%
goto :eof



:bigarr
for /f "usebackq tokens=2 delims==" %%g in (`if defined var set var`) do if "%%g" neq "" set %%g=
set szum=0
set xvar=%1
:loop
set /a szum=%szum%+1
set var.%szum%.x=%xvar:~-3%
set xvar=%xvar:~0,-3%
if "%xvar%" equ "" goto :eof
goto :loop

:end
endlocal
pause


-+ 2~3% error rate
hahahahahah...
T_T;; sorry frank....;;;




frank.w...@gmail.com

unread,
Jan 16, 2014, 6:00:39 PM1/16/14
to
From mokomoji :

>:bigint

>-+ 2~3% error rate
>hahahahahah...
>T_T;; sorry frank....;;;

Broke? Sorry, I don't have Windows so I can't fix it. I
use Linux now.

Frank

mokomoji

unread,
Jan 16, 2014, 6:12:19 PM1/16/14
to
2014년 1월 17일 금요일 오전 8시 0분 39초 UTC+9, frank.w...@gmail.com 님의 말:
> From mokomoji : >:bigint >-+ 2~3% error rate >hahahahahah... >T_T;; sorry frank....;;; Broke? Sorry, I don't have Windows so I can't fix it. I use Linux now. Frank

https://groups.google.com/forum/?hl=kr#!searchin/alt.msdos.batch.nt/MOKOMOJI/alt.msdos.batch.nt/HA7MgOAW_qc/m5NMhVjbWzgJ

This source
I'am doesn't seem to understand very well
SORRY..~!!
I'am is still far from perfect. T_T;;;;
OTL

mokomoji

unread,
Jan 16, 2014, 6:23:07 PM1/16/14
to
2014년 1월 17일 금요일 오전 8시 0분 39초 UTC+9, frank.w...@gmail.com 님의 말:
> From mokomoji : >:bigint >-+ 2~3% error rate >hahahahahah... >T_T;; sorry frank....;;; Broke? Sorry, I don't have Windows so I can't fix it. I use Linux now. Frank

NO FIX ...
LONG LONG AGO PROGRAMING BY FRANK.. SOURCE..
I'AM DOESN'T SEEM TO UNDERSTAND VERY WELL
B_B MY SOURCE THIS question answer~

Frank P. Westlake

unread,
Jan 16, 2014, 7:12:42 PM1/16/14
to
On 01/16/2014 03:23 PM, mokomoji wrote:
> NO FIX ...
> LONG LONG AGO PROGRAMING BY FRANK.. SOURCE..
> I'AM DOESN'T SEEM TO UNDERSTAND VERY WELL
> B_B MY SOURCE THIS question answer~

OK. My understanding:

- It is not broken.
- You are showing it to answer this thread.

Frank


0 new messages