:: 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
0 B
|👍
/👎