从 echo %cd% 命令中删除父目录名称

发布于 2024-11-07 12:56:08 字数 197 浏览 6 评论 0原文

我们知道 echo %cd% 命令打印工作目录,假设它是“C:\test\bin\run” 我想知道如何从字符串中删除“run”。第二次“运行”目录可以是“停止”目录。因此我们不能使用字符串替换命令。我认为要做的是删除最后一个“\”后面的字符串。任何人都知道如何在 Windows 命令行(cmd) 中执行此操作

We know that echo %cd% command print working directory, Assume that it is "C:\test\bin\run" I want to know how to remove "run" from the string. second time "run" directory can be "stop" directory. therefore we can't use string replace command. what is I think to do is remove the string after last "\". Anyone know how to do this in windows commandline(cmd)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猫弦 2024-11-14 12:56:08

如果可以在过程中更改目录,怎么样:

set x=%cd%
cd ..
set parent=%cd%
cd %x%

If it's okay to change dirs during the process how about:

set x=%cd%
cd ..
set parent=%cd%
cd %x%
吻风 2024-11-14 12:56:08

在命令行中,这是有效的:

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A

现在环境变量 FOLDER 包含值“folder”

我使用 tokens=3 因为文件夹是 \-分隔符之后的第三个标记

如果您使用 tokens=2 环境变量 FOLDER 包含值“dir”

如果您使用 tokens=1 环境变量 FOLDER 包含值“c:”

如果您将 %A 替换为 %%A,它也应该在批处理文件中工作,如下所示:

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A

基于此,您可以构建一个重复的循环,直到 FOLDER 为空 细绳。
在循环中,您需要在每一步将 FOLDER 分配给 LASTFOLDER。
循环完成后,LASTFOLDER 包含当前目录的文件夹。
您还可以将代码放入单独的脚本“GetBaseFolder.BAT”中并使用
在主批处理中“调用 GetBaseFolder %CD%”。

in commandline this works:

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A

Now the environment variable FOLDER contains the value "folder"

I used tokens=3 because folder is the third token after the \-delimiters

If you used tokens=2 the environment variable FOLDER contained the value "dir"

If you used tokens=1 the environment variable FOLDER contained the value "c:"

it should also work in Batch Files if you replace %A by %%A like follows:

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A

Based on this you can build a loop that repeats until FOLDER is empty string.
In the loop you would need to assign FOLDER to LASTFOLDER at each step.
After the loop is done, LASTFOLDER contains the Folder of your current Directory.
You also could put the code into a seperate script "GetBaseFolder.BAT" and use
"call GetBaseFolder %CD%" in the main Batch.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文