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..
> 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
>> 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
> 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
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
"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
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 . . .
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"
"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
> ______0000_BYTE__/케인의분노\_______________Crack
> Wrath [Kor] crack.rar
> _some_0008_KILO__/케인의분노\Crack\_________rld-c3kk_keygen.exe
>
There's nothing clever about piracy!
@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