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 | + |