获得当前路径的一部分

问题描述 投票:0回答:2

我想获得我的批处理脚本所在的当前目录的一部分。

位置类似于:Y:\ abc \ def \ ghi \ jkl \ script.bat

我只想保留Y:\ abc \ def \(即\ ghi \ jkl)之后的内容

如何执行此操作?

我正在使用下面的代码来获取完整路径,但是如何进行定界?

for /f %%a in ("%CD%") do set CURR=%%a
echo %CURR%

感谢您的宝贵帮助。

windows for-loop batch-file directory delimiter
2个回答
0
投票

我相信您可以将要剪切的部分放在txt文件中,然后从文件中的循环操作字符串,如下所示:

echo %cd% > path.txt

for /f "tokens=3,* delims=\" %%a in (path.txt) do echo %%b

用参数tokens=3确定深度,分隔符为"\"


0
投票

根据您所说的“我的批处理脚本所在的目录”,以下内容就足够了,(添加了最后一行用于演示,请根据需要进行更改)

@Set "x=%~dp0"&SetLocal EnableDelayedExpansion
@Set "i=0"&Set "x!i!=%x:\="&Set /A i+=1&Set "x!i!=%"
@Set /A i-=1,y=i-1
@If %i% Lss 1 (Set "z=%x0%\")Else (If %i% Equ 1 (Set "z=%x0%\%x1%"
        )Else Set "z=!x%y%!\!x%i%!")
@EndLocal&Set "y=%z%"
@Echo %x% becomes %y%&Pause

我这样做的目的是,如果脚本目录不够深,仍将输出完整路径。

如果要使用当前目录而不是脚本位置,请将%~dp0行上的1更改为%__CD__%

© www.soinside.com 2019 - 2024. All rights reserved.