View difference between Paste ID: DstbytA7 and 7eDDy0JQ
SHOW: | | - or go back to the newest paste.
1
:pushd_counter
2-
rem -- counts the number of pushd calls
2+
rem -- prints pushd level stack
3
rem -- by Vasil "npocmaka" Arnaudov
4
@echo off
5
set prompt_backup=%prompt%
6
prompt $+
7
( echo on
8
   for %%a in (1) do ( @rem
9
   )
10
)>%temp%\p.tmp
11
@echo off
12
prompt %prompt_backup%
13
set "prompt_backup="
14-
for /f "usebackq tokens=1,2,3 delims=() " %%P in ("%temp%\p.tmp") do (
14+
for /f "usebackq tokens=1 delims=() " %%P in ("%temp%\p.tmp") do (
15-
	set pushes=%%P
15+
        set s=%%P
16-
	goto :end_for
16+
17
del %temp%\p.tmp  /q >nul
18-
:end_for
18+
setlocal EnableDelayedExpansion
19-
call :strlen0.3  pushes
19+
  set "s=#!s!"
20-
del %temp%\p.tmp /s /q >nul
20+
21-
goto :eof
21+
22-
22+
        set /A mod=2*%%A
23-
:strlen0.3  StrVar  [RtnVar]
23+
        for %%Z in (!mod!) do (
24-
  setlocal EnableDelayedExpansion
24+
                if "!s:~%%Z,1!" neq "" (
25-
  set "s=#!%~1!"
25+
                        set /a "len+=%%Z"
26
                        set "s=!s:~%%Z!"
27
                       
28-
	set /A mod=2*%%A
28+
                ) else (
29-
	for %%Z in (!mod!) do (
29+
                        if "!s:~%%A,1!" neq "" (
30-
		if "!s:~%%Z,1!" neq "" (
30+
                                set /a "len+=%%A"
31-
			set /a "len+=%%Z"
31+
                                set "s=!s:~%%A!"
32-
			set "s=!s:~%%Z!"
32+
                        )
33-
			
33+
                )
34-
		) else (
34+
        )
35-
			if "!s:~%%A,1!" neq "" (
35+
36-
				set /a "len+=%%A"
36+
endlocal &  echo %len%
37-
				set "s=!s:~%%A!"
37+
set "s="
38-
			)
38+