1iJaCk icon

path_express.bat

1iJaCk | PRO | 06/14/17 07:24:08 AM UTC | 0 ⭐ | 186 👁️ | Never ⏰ | []
Batch |

5.73 KB

|

None

|

0 👍

/

0 👎

::  By JaCk | Release 08/19/2017 | https://pastebin.com/cPHrHZ1T | path_express.bat - Display a list of all the paths in the Path var
@echo off && setlocal EnableDelayedExpansion && (for /f "tokens=1 delims==" %%a in ('set pxv_') do set "%%a=") 2>nul 1>nul
 
::  ----------------------------------------
::  Based on this script's authors (JaCk) oneliner -- w00t, making this script useless with excessive lines of code -- why so TL;DR? I has 4ee Tyeme
::    for %%a in ("!path:;=";"!") do (echo/%%~fa)
::    - Note: On cmd console, use single percentage symbols instead of doubles.
::  ----------------------------------------
::  
::
::  ----------------------------------------
::   Thanks, Sources, and/or [Sourced-]Contributions
::  ----------------------------------------
::    !Please Note: Unless noted, no explicit consent to use code was given/received.
::    !Credited Authors/Parties/Peoples/Persons/Strawmans may be un-aware that they've contributed to this script
::  ----------------------------------------
::   + Feature: Prepadded Zeros 
::    ~> Credited Author: jeb - https://stackoverflow.com/users/463115/jeb
::     * "Lazy Zeros"               -- https://stackoverflow.com/a/9430912
::     * Determine string length    -- https://stackoverflow.com/a/19101275
::  ----------------------------------------
::
::
::  ----------------------------------------
::  Change List 
::  ----------------------------------------
::  * 08/19/2017 - Removed console one liner as it was causing a crash
::               - Rewrote some blocks to make the script execute faster, not that it is slow
::               - Added debug var to dump debug msgs, no need to uncomment debug lines anymore.
::               - Fixed pxv_flag_padded_zero_numbers.  Now it is respected
::
::  + 07/22/2017 - Added Prepadded Zeros,
::               - Dump script vars upon a normal script exit -- To use, remove the [rem] - (it is not "old code")
::
::  * 07/22/2017 - Changed script comments to, depending on your opinion, [un]clarify certain code blocks and the overall script
::  + 06/14/2017 - Inital release 
::  ----------------------------------------
::
 
 
:::::::::::::::::::::::::::::::::::::::
:::                                  :::
::                                    ::
::               Options              ::
::                                    ::
:::                                  :::
:::::::::::::::::::::::::::::::::::::::
::  Settings :: Type: Bi-State Boolean :: Accepted Values: [true/undef]
set "pxv_debug="                        rem  Default: undef  --- To print internal debug msgs
set "pxv_flag_tcount=true"              rem  Default: true   --- To print the total path count
set "pxv_flag_numbered_paths=true"      rem  Default: true   --- To print a numbered path list
set "pxv_flag_padded_zero_numbers=true" rem  Default: true   --- To print a padded numbered path list
 
::  Help Output for Settings
::  > Setting Flags above will change output behavior, examples below
::    = Normal                        -- Prints [Path]
::    + pxv_flag_tcount               -- Prints [[count]] [Path]
::    + pxv_flag_numbered_paths       -- Prints [[count]/[total-count]] [Path]
::    + pxv_flag_padded_zero_numbers  -- Prints [[zero-padded-count]/[total-count]] [Path]
 
:::::::::::::::::::::::::::::::::::::::
:::                                  :::
::                                    ::
::                Brains              ::
::                                    ::
:::                                  :::
:::::::::::::::::::::::::::::::::::::::
 
::  grab a count of all the items
echo "!pxv_flag_tcount:~0,1!" | findstr /i "y 1 t" 2>nul 1>nul && for %%a in (
    "!path:;=";"!"
) do set /a "pxv_tcnt+=1"
 
 
::  Boolean Check - Display the Padded Numbers
::  calc string length -- Using str length to "UnLazy" the "Lazy Zeroes"
::  pxv_padz - Creating a working set of prepadded zeros from total -- deemed "Almost Lazy Zeros"
echo "!pxv_flag_padded_zero_numbers:~0,1!" | findstr /i "y 1 t" 2>nul 1>nul
if !errorlevel! equ 0 if !pxv_tcnt! geq 10 (
    set "pxv_Pvar=!pxv_tcnt!#"
 
    for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
        if "!pxv_Pvar:~%%P,1!" NEQ "" (
            set "pxv_Pvar=!pxv_Pvar:~%%P!"
            set /a "pxv_padz_total+=%%P"
            for /l %%q in (1,1,%%P) do set "pxv_padz=0!pxv_padz!"
        )
    )
)
 
 
::  Boolean Check - Display the Numbered Path - declare int 0
echo "!pxv_flag_numbered_paths:~0,1!" | findstr /i "y 1 t" 2>nul 1>nul && set "pxv_cntr=0"
 
::  Diplay the paths with the optional total count and/or current count
::  When reading the do statement, think of an up-side-down tree.
    rem  Boolean - counts - [[number]] [Path]  -OR- [Path]
    rem   Boolean - total counts - [[number]/[total]] [Path]
    rem   Boolean - Prepadded "UnLazy Zeroes" - [[padded]/[total]] [Path]
for %%a in (
    "!path:;=";"!"
) do (
    if "%%~fa" neq "" if defined pxv_cntr (
        set /a "pxv_cntr+=1"
        
        if defined pxv_tcnt (
            if defined pxv_padz (
                set "pxv_zcnt=!pxv_padz!!pxv_cntr!"
                set "pxv_zcnt=!pxv_zcnt:~-%pxv_padz_total%!"
                
                echo/[!pxv_zcnt!/!pxv_tcnt!] %%~fa
            ) else echo/[!pxv_cntr!/!pxv_tcnt!] %%~fa
        ) else echo/[!pxv_cntr!] %%~fa
    ) else echo/%%~fa
)
 
 
::  Display the total count if we had not displayed the path counts
if defined pxv_tcnt if not defined pxv_cntr echo INFO: Total Paths Counted: [!pxv_tcnt!]
 
 
::  gtfo process
rem  dump all script vars and clear all vars
if defined pxv_debug for /f "tokens=1,* delims==" %%a in ('set pxv_') do echo %%a=%%b
( for /f "tokens=1 delims==" %%a in ('set pxv_') do set "%%a=" ) 2>nul 1>nul
endlocal

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎