batch-fil - Liste bibliotek stakke i vinduer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at liste de mapper, der er blevet tilføjet til mappen, ved hjælp af kommandoen:
pushd


Jeg kan ikke finde nogen referencer eller kommandoer om, hvordan man udskriver bibliotekets stakkeindhold.


Enhver hjælp er værdsat

Bedste reference


A pushd uden parametre udsender listen over de stablede mapper.


pushd c:
pushd windows
pushd help
pushd windows
pushd en-us

pushd


Vil output



  c: \ Windows \ Help \ Windows

  c: \ Windows \ Help

  c: \ Windows

  c: \

  c: \ Temp



Den seneste trykte katalog mangler her, men kan simpelthen hentes af \%\_\_CD\_\_\%.


Og der er endnu en mappe (i mit tilfælde C: emp), da det bliver biblioteket efter den sidste udført popd.

Andre referencer 1


Nice udfordring. Som allerede nævnt synes der ikke at være nogen indbygget måde at få den information på, så du har brug for et script til at gøre det trin for trin:


@echo off
setlocal enabledelayedexpansion
set origin=\%cd\%

rem build a demo stack:
pushd c:
pushd windows
pushd help
pushd windows
pushd en-us

rem get stack step by step:
set i=0
:loop
  popd && (
    set /a i+=1
    echo !i! --- \%cd\%
    set "p[!i!]=\%cd\%"
   ) || (
    goto :TopOfStack
   ) 
goto :loop

:TopOfStack
echo stack empty.
cd \%origin\%
rem restore stack:
set p[
for /l \%\%i in (\%i\%,-1,1) do (
  pushd "!p[\%\%i]!"
)


Bemærk: Se også jebs svar.