Phu*_*hib 2 windows batch-file
我试图使用以下命令列出已添加到目录堆栈的目录:
pushd
我找不到任何关于如何打印目录堆栈内容的引用或命令.
任何帮助表示赞赏
好挑战.如前所述,似乎没有内置的方法来获取该信息,因此您需要一个脚本来逐步执行此操作:
@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]!"
)
Run Code Online (Sandbox Code Playgroud)
注意:请参阅jeb的回答.
甲pushd不带参数输出堆叠的目录列表.
pushd c:\
pushd windows
pushd help
pushd windows
pushd en-us
pushd
Run Code Online (Sandbox Code Playgroud)
会输出
c:\ Windows\Help\Windows
c:\ Windows\Help
c:\ Windows
c:\
c:\ Temp
这里缺少最新的推送目录,但可以简单地检索%__CD__%.
还有一个目录(在我的例子中C:\temp),因为它将是最后一次执行后的目录popd.