gpt4 book ai didi

windows - 如何从基于自身的批处理脚本中找出第 3 个目录 - %0

转载 作者:可可西里 更新时间:2023-11-01 11:21:51 27 4
gpt4 key购买 nike

当从放置它的同一目录调用文件时,这有效:

    @ECHO OFF
set _MyCurrentPath=%CD%
pushd ..
set _Level1UpDir=%CD%
ECHO _Level1UpDir: %_Level1UpDir%
pushd ..
set _Level2UpDir=%CD%
ECHO _Level2UpDir: %_Level2UpDir%
pushd ..
set _Level3UpDir=%CD%
ECHO _Level3UpDir: %_Level3UpDir%
PAUSE

然而,如何从 %0 开始上升到第 n 级……这需要使用 for/f %%in 进行一些花哨的调用

我的策略是计算反斜杠的数量和第二个 for 循环,如下所示: 设置计数=1 FOR/f "tokens=1-4 delims=."%%G IN ('echo %0') DO (call :subroutine "%%G") 转到:eof

:subroutine
echo %count%:%1
set /a count+=1
pause
GOTO :eof

最佳答案

路径 .\..\..\.. 有什么问题(在循环中尽可能多地重复 .. )?

这是批处理 code to repeat a string N times

如果你需要完全展开的路径,你可以尝试tilde-expansion .例如:%~dp0 将被 %0 扩展为完整路径。

如果它们包含相对于批处理文件本身的路径,我经常将 CD %~dp0 放在批处理文件的顶部附近。

因此您可以使用 %~dp0\..\..\.. 获取完整路径,然后从那里向上 3。

关于windows - 如何从基于自身的批处理脚本中找出第 3 个目录 - %0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416297/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com