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

DOS COMMAND "DIR" i want...

50 views
Skip to first unread message

mokomoji

unread,
Nov 5, 2009, 1:20:16 PM11/5/09
to
question 3.

I want list view
1. short direct path to demonstration
2. Files size BY,MB,GB,TB unit
3. 2GB over files size account
4. Directory process
5. Source otimizer
i want...

my source..

test os
MS OS XP SP3 - KOREA VERSION

source-------------------------------------------
@echo off
setlocal EnableDelayedExpansion
REM 2147483646 over error
set loopx=0
set f4=0
for /f %%f in ('dir . /b /s /ognd-s') do (
if !f4! lss 1 (
call :gg1 %%~pf
rem echo !f3! !f4!
echo !f3!
)

call :gg2 %%~zf %%~nxf %%~pf
)
goto :end

:gg1
set f2="%1"
:loof2
set /a f4=%f4%+1
for /f "tokens=1* delims=\" %%a in (%f2%) do (
set f2="%%b"
)
if %f2% equ "" goto :eof
set f3=%f2%
goto :loof2


:gg2
set size1=%1
set size2="By,1024,KB,1048576,MB,1073741824,GB,1099511627776"
set size3=%size1%
set size4=%size1%
set kk=0
set kg=by
set sizex=
:loop
for /f "tokens=1,2* delims=," %%g in (%size2%) do (
if %size1% geq !kk! (
if %size1% lss %%h (
set sizefull= %size3% %%g
call :folderx2 %3 %2
)
)
set size3=%size3:~0,-3%
set kk=%%h
set size2="%%i"
set sizex=some
)
if %size2% equ "" goto :eof
goto :loop

:folderx2
for /f "tokens=%f4%* delims=\" %%x in ("%1") do (
set folderx=%%x\%%y
set filex=%2
echo %sizex:~-4% !sizefull:~-10! !folderx:~0,27! !filex:~-0!
)

goto :eof

:end
endlocal
pause


-souce result-
"공사중\"
0 By 공사중\ image
0 By 공사중\ sound
17 By 공사중\ ggg.bat
some 2 KB 공사중\ index.html
some 1 KB 공사중\ kkk.bat
290 By 공사중\ list.txt
0 By 공사중\image\ logo
some 53 KB 공사중\image\ construction.jpg
some 3 KB 공사중\image\logo\ daum.gif
some 2 KB 공사중\image\logo\ empas.gif
some 8 KB 공사중\image\logo\ google.gif
some 8 KB 공사중\image\logo\ lycos.png
some 2 KB 공사중\image\logo\ msn.gif
some 3 KB 공사중\image\logo\ nateon.gif
some 4 KB 공사중\image\logo\ naver.gif
some 3 KB 공사중\image\logo\ yahoo.gif
some 818 KB 공사중\sound\ love.wma
some 2 MB 공사중\sound\ singsing.mp3
some 1 MB 공사중\sound\ zzu_u_heartlie.wma
계속하려면 아무 키나 누르십시오 . . .

i want question -- result
[공사중] <----- now working directory marking
0 By 공사중\ [image] <---------sub
directory indication marking
0 By 공사중\ [sound] <---------sub
directory indication marking
17 By 공사중\ ggg.bat
some 3 GB <-- files size 3GB cognition
some 1 KB 공사중\ kkk.bat
290 By 공사중\ list.txt

:
:

32bit or 4byte calculation max number "2147483646"
Long int how use?
not' external program use..
only batch programing or inner program uses..

Frank P. Westlake

unread,
Nov 5, 2009, 2:41:43 PM11/5/09
to
"mokomoji" news:e38043bc-7ef3-4a8e...@f1g2000prf.googlegroups.com...

> 32bit or 4byte calculation max number "2147483646"
> Long int how use?
> not' external program use..
> only batch programing or inner program uses..


Compare strings with leading zeroes:

:: Maximim 64-bit signed integer 9223372036854775807 (19 digits)
Set "ZeroX18=000000000000000000"
Set "ThisSize=%ZeroX18%%%~zf"
Set "ThisSize=%ThisSize:~-19%"
call :gg2 %ThisSize% %%~nxf %%~pf

:gg2
set size1=%1
set size2="By,0000000000000001024,KB,0000000000001048576,MB,0000000001073741824,GB,0000001099511627776"

Frank

Message has been deleted

Frank P. Westlake

unread,
Nov 5, 2009, 4:12:43 PM11/5/09
to
"mokomoji" news:6b9382c0-d5e8-4cd3...@w37g2000prg.googlegroups.com...

>> call :gg2 %ThisSize% %%~nxf %%~pf

> error mesage

> The following usage of the path operator in batch-parameter
> substitlution is invalid: %~zf %~nxf %~pf

Your script doesn't work on my system so I couldn't test my changes, but it seems to me that since you used the substitutions %%~zf, %%~nxf, and %%~pf my use in the same location should also work.

Frank

Message has been deleted

Frank P. Westlake

unread,
Nov 5, 2009, 5:39:51 PM11/5/09
to
"mokomoji" news:52feea36-9406-453b...@u25g2000prh.googlegroups.com...

> windows korea version..
> english version convert

It still doesn't work. I think you have some undefined variables in your script so your script is taking them from the console instead. Here is the output:

"1234"
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0

When I turn Echo ON here is :folderx2

C:\1234>(
set folderx=1234\dddd\
rem folderx xy speace 20
set filex=ddd.txt
echo ~-4~-10! !folderx:~0,20! !filex:~-0!
)
~-4~-10folderx:~0,20filex:~-0

So I think you need to close your console window, open a new console window and test again.

The changes I suggested for 64-bit number comparison were meant to be changed in your script. They won't run as a script alone.

Frank

Message has been deleted

mokomoji

unread,
Nov 5, 2009, 6:26:09 PM11/5/09
to
very very sorry two.....
rem definite
main source ... 3line REM view speace processing to maker space..
and delete folder 1234

environment file new source
found variety new environment file


path files
list.txt
-----------------------------------------------
C:\1234\1111\
C:\1234\1234\
C:\1234\dddd\
C:\1234\ffff\
C:\1234\1111\222list.txt
C:\1234\1234\list.txt
C:\1234\dddd\ddd.txt
-------------------------------------------------------


environment file source
--------------------------------------------------------
@echo off
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%f in (list.txt) do (
if not exist %%~dpf md %%~dpf
if not exist %%~dpnxf (
set /a ran=!RANDOM!+3
set /a ran=!RANDOM!/3
echo !ran! -------- %%f
for /l %%i in (1,1,!ran!) do (
echo sadfsadfasdfasdfasdfasfsdfsdfsdfsdfsaf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf


if !ran! geq 100 (
echo sadfsadfasdfasdfasdfasfsdfsdfsdfsdfsaf >> %%~dpf\!ran!.txt
echo sadfsadfasdfasdfasdfasf >> %%~dpf\!ran!.txt
echo sadfsadfasdfasdfasdfasf >> %%~dpf\!ran!.txt
echo sadfsadfasdfasdfasdfasf >> %%~dpf\!ran!.txt
echo sadfsadfasdfasdfasdfasfsdfsdfsdfsdfsaf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf
echo sadfsadfasdfasdfasdfasf >> %%~dpnxf
)


---------------------------------------------------------------------------­--


english version. main source & bug edition version.. 2

---------------------------------------------------------------------------
@echo off
chcp 437
cls


setlocal EnableDelayedExpansion
REM 2147483646 over error
set loopx=0
set f4=0
for /f %%f in ('dir . /b /s /ognd-s') do (
if !f4! lss 1 (
call :gg1 %%~pf
rem echo !f3! !f4!
echo !f3!
)
call :gg2 %%~zf %%~nxf %%~pf
)
goto :end


:gg1
set f2="%1"
:loof2
set /a f4=%f4%+1
for /f "tokens=1* delims=\" %%a in (%f2%) do (

set f3="%%a"
set f2="%%b"
)


if %f2% equ "" goto :eof

rem set f3=%f2%
goto :loof2
:gg2
set size1=%1


set size2="By,1024,KB,1048576,MB,1073741824,GB,1099511627776"
set size3=%size1%
set size4=%size1%
set kk=0
set kg=by
set sizex=

rem sizex value up line 4 space end ->end col 37
rem ---------------------------------------


:loop
for /f "tokens=1,2* delims=," %%g in (%size2%) do (
if %size1% geq !kk! (
if %size1% lss %%h (
set sizefull= %size3% %%g

rem sizefull value up line hidden 2 space end ->end col 45
rem --------------------------------------


call :folderx2 %3 %2
)
)
set size3=%size3:~0,-3%
set kk=%%h
set size2="%%i"
set sizex=some
)
if %size2% equ "" goto :eof
goto :loop


:folderx2
for /f "tokens=%f4%* delims=\" %%x in ("%1") do (
set folderx=%%x\%%y

rem folderx value up line hidden 20 space end------>end col 59
rem -------------------------------------------


set filex=%2
echo %sizex:~-4% !sizefull:~-10! !folderx:~0,20! !filex:~-0!
)


goto :eof


:end
endlocal
pause

----------------------------------------------------------------------------------

display output ? -------- some display output ?

------------------------------------------------------------------------------------
"1234"
0 By 1234\ 1111
0 By 1234\ 1234
0 By 1234\ dddd
0 By 1234\ ffff
30 By 1234\ kdkd.bat
some 1 KB 1234\ kkk.bat
520 By 1234\1111\ 222list.txt
520 By 1234\1234\ list.txt
520 By 1234\dddd\ ddd.txt

Frank P. Westlake

unread,
Nov 5, 2009, 6:32:48 PM11/5/09
to
Same result:

"1234"
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0
~-4~-10folderx:~0,20filex:~-0

If I change :folderx2 to this:

:folderx2
for /f "tokens=%f4%* delims=\" %%x in ("%1") do (
set folderx=%%x\%%y

rem folderx xy speace 20

set filex=%2
Set "sizex=%sizex:~-4%"
Set "sizefull=!sizefull:~-10!"
Set "folderx=!folderx:~0,20!"
Set "filex=!filex:~-0!"
REM echo %sizex:~-4% !sizefull:~-10! !folderx:~0,20! !filex:~-0!
echo %sizex% !sizefull! !folderx! !filex!
)

I get this:

"1234"
0 By 1234\ 1111
0 By 1234\ 1234
0 By 1234\ dddd
0 By 1234\ ffff

520 By 1234\1111\ 222list.txt
520 By 1234\1234\ list.txt
520 By 1234\dddd\ ddd.txt

As you can see it is missing "some". I think you have variable %sizex% defined in your console window, external to the SetLocal in your script.

Frank


Frank

mokomoji

unread,
Nov 5, 2009, 6:48:52 PM11/5/09
to
File size -o-??????????????
re 1234 folder....ok? delete 1234...
environment file source remaker...

main source..3 reversion............. u'r T_T;;

----------------------------------------------------------------------
@echo off
chcp 437
cls

setlocal EnableDelayedExpansion
REM 2147483646 over error
set loopx=0
set f4=0
for /f %%f in ('dir . /b /s /ognd-s') do (
if !f4! lss 1 (
call :gg1 %%~pf
rem echo !f3! !f4!
echo !f3!
)
call :gg2 %%~zf %%~nxf %%~pf
)
goto :end

:gg1
set f2="%1"
:loof2
set /a f4=%f4%+1
for /f "tokens=1* delims=\" %%a in (%f2%) do (

set f3="%%a"
set f2="%%b"
)

if %f2% equ "" goto :eof

rem set f3=%f2%
goto :loof2

:gg2
set size1=%1
set size2="BYTE,1024,KILO,1048576,MEGA,1073741824,GIGA,1099511627776"


set size3=%size1%
set size4=%size1%
set kk=0
set kg=by

set sizex=____

rem folder up line 4 space end ->end ln 37
rem ---------------------------------------

:loop
for /f "tokens=1,2* delims=," %%g in (%size2%) do (
if %size1% geq !kk! (
if %size1% lss %%h (

set sizefull=_____%size3%_%%g__/

rem folder up line 2 space end ->end ln 45
rem --------------------------------------

call :folderx2 %3 %2
)
)
set size3=%size3:~0,-3%
set kk=%%h
set size2="%%i"
set sizex=some
)
if %size2% equ "" goto :eof
goto :loop

:folderx2


for /f "tokens=%f4%* delims=\" %%x in ("%1") do (

set folderx=%%x\%%y___________________
rem folder up line 20 space end------>end ln 59
rem -------------------------------------------

set filex=%2
echo _%sizex:~-4%_!sizefull:~-10!!folderx:~0,20!_!filex:~-0!
)

goto :eof

:end
endlocal
pause

-----------------------------------------------------------------
out put...ok? no space... "_" <-- space process...

"1234"
_______0_BYTE__/1234\________________1111
_______0_BYTE__/1234\________________1234
_______0_BYTE__/1234\________________dddd
_______0_BYTE__/1234\________________ffff
_some__1_KILO__/1234\________________kkk.bat
______36_BYTE__/1234\________________list.txt
______43_BYTE__/1234\________________LIST2.TXT
______92_BYTE__/1234\________________setingfile2.bat
_some__1_MEGA__/1234\1111\___________222list.txt
_some_50_KILO__/1234\1111\___________7145.txt
_some_00_KILO__/1234\1234\___________2524.txt
_some_25_KILO__/1234\1234\___________list.txt
_some_46_KILO__/1234\dddd\___________7956.txt
_some__1_MEGA__/1234\dddd\___________ddd.txt
Press any key to continue . . .

Frank P. Westlake

unread,
Nov 5, 2009, 7:34:20 PM11/5/09
to
That works.

Now, you want 64-bit number comparison. I added it to the following script but you will need to fix the output appearance:

@echo off
chcp 437
cls
setlocal EnableDelayedExpansion
REM 2147483646 over error

Set "ZeroX18=000000000000000000"


set loopx=0
set f4=0
for /f %%f in ('dir . /b /s /ognd-s') do (
if !f4! lss 1 (
call :gg1 %%~pf
rem echo !f3! !f4!
echo !f3!
)

Set "BigSize=%%~zf"
Set "BigSize=%ZeroX18%%%~zf"

REM BUG: This does not work:
::Set "BigSize=%BigSize:~-19%"
REM Use this:
Set "BigSize=!BigSize:~-19!"
call :gg2 !BigSize! %%~nxf %%~pf
REM call :gg2 %%~zf %%~nxf %%~pf
)
goto :end

:gg1
set f2="%1"
:loof2
set /a f4=%f4%+1
for /f "tokens=1* delims=\" %%a in (%f2%) do (
set f3="%%a"
set f2="%%b"
)

if %f2% equ "" goto :eof
rem set f3=%f2%
goto :loof2
:gg2
set size1=%1

set size2="BYTE,0000000000000001024,KILO,0000000000001048576,MEGA,0000000001073741824,GIGA,0000001099511627776"

Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Frank P. Westlake

unread,
Nov 6, 2009, 4:21:17 AM11/6/09
to
It looks good. I like your program. My display (see big_file):

"t"
0 BYTE /t\ 1111
0 BYTE /t\ 1234
0 BYTE /t\ dddd
0 BYTE /t\ ffff
some 10 GIGA /t\ big_file
528 BYTE /t\ name with spaces
some 1 KILO /t\ u
520 BYTE /t\1111\ 222list.txt
520 BYTE /t\1234\ list.txt
520 BYTE /t\dddd\ ddd.txt

I changed "_" to space using quotes. For example:

set "sizex= "
set "folderx=%%x\%%y "

In ":loop" I changed your line

set sizefull= %size3% %%g /

to these lines:

REM set sizefull= %size3% %%g /
REM Remove leading 0:
Set /A "sizefull=1%size3:~-4%-10000"
REM Add leading spaces:
Set "sizefull= !sizefull!"
Set "sizefull=!sizefull:~-9! %%g /"

Frank

ten.n...@virgin.net

unread,
Nov 6, 2009, 1:39:42 PM11/6/09
to
On Thu, 5 Nov 2009 18:48:05 -0800 (PST), mokomoji wrote:

> ______0000_BYTE__/케인의분노\_______________Crack
> Wrath [Kor] crack.rar
> _some_0008_KILO__/케인의분노\Crack\_________rld-c3kk_keygen.exe
>

There's nothing clever about piracy!

mokomoji

unread,
Nov 6, 2009, 3:23:35 PM11/6/09
to
This information posts about piracy or
Just think for a test

mokomoji

unread,
Nov 6, 2009, 3:56:59 PM11/6/09
to
nice~!!
thank you..~!! Frank~!!

@echo off


cls
setlocal EnableDelayedExpansion
REM 2147483646 over error
Set "ZeroX18=000000000000000000"
set loopx=0
set f4=0

for /f "tokens=*" %%f in ('dir . /b /s /ognd-s') do (


if !f4! lss 1 (
call :gg1 "%%~pf"
rem echo !f3! !f4!
echo !f3!
)
Set "BigSize=%%~zf"
Set "BigSize=%ZeroX18%%%~zf"

::Set "BigSize=%BigSize:~-19%"


Set "BigSize=!BigSize:~-19!"
call :gg2 !BigSize! "%%~nxf" "%%~pf"

)
goto :end
:gg1
set f2="%~1"


:loof2
set /a f4=%f4%+1
for /f "tokens=1* delims=\" %%a in (%f2%) do (
set f3="%%a"
set f2="%%b"
)
if %f2% equ "" goto :eof
rem set f3=%f2%
goto :loof2
:gg2
set size1=%1
set size2="BYTE,0000000000000001024,KILO,0000000000001048576,MEGA,

0000000001073741824,GIGA,0000001099511627776,PERA,0001125899906842624"


set size3=%size1%
set size4=%size1%
set kk=0
set kg=by
set "sizex= "

:loop
for /f "tokens=1,2* delims=," %%g in (%size2%) do (
if %size1% geq !kk! (
if %size1% lss %%h (

Set /A "sizefull=1%size3:~-4%-10000"


Set "sizefull= !sizefull!"
Set "sizefull=!sizefull:~-9! %%g "

call :folderx2 "%3" "%~2"


)
)
set size3=%size3:~0,-3%
set kk=%%h
set size2="%%i"
set sizex=some
)
if %size2% equ "" goto :eof
goto :loop
:folderx2

for /f "tokens=%f4%* delims=\" %%x in (%~1) do (
set "folderx=%%x\%%y "
set "filex=%~2"
echo %sizex:~-4% !sizefull:~-12! !folderx:~0,20! !filex:~-0!


)
goto :eof
:end
endlocal
pause

"망할케인"
0 BYTE 망할케인\ Crack
some 206 KILO 망할케인\
3553554518_0267f2d8_pc_c26c3kw.jpg
some 997 KILO 망할케인\ 망할케인트레이너.ZIP
some 1 MEGA 망할케인\ s&skw_trainer.exe
some 4 GIGA 망할케인\ starshow - merong Wrath
[Kor].iso
some 1 KILO 망할케인\ starshow - merong Wrath
[Kor].nfo
29 BYTE 망할케인\ KAA.BAT
some 2 KILO 망할케인\ kkk.bat
738 BYTE 망할케인\ LIST2.TXT
some 25 MEGA 망할케인\tttt\RetailEx sns3ep1.dat

0 new messages