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