我们知道 echo %cd% 命令打印工作目录,假设它是“C:\test\bin\run” 我想知道如何从字符串中删除“run”。第二次“运行”目录可以是“停止”目录。因此我们不能使用字符串替换命令。我认为要做的是删除最后一个 "\" 之后的字符串。任何人都知道如何在 Windows命令行(cmd)中执行此操作
问问题
1154 次
2 回答
1
如果可以在此过程中更改目录,那么:
set x=%cd%
cd ..
set parent=%cd%
cd %x%
于 2011-05-15T20:42:26.143 回答
0
在命令行中这有效:
C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A
现在环境变量 FOLDER 包含值“文件夹”
我使用了 tokens=3 因为文件夹是 \-delimiters 之后的第三个标记
如果您使用 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%”。
于 2013-04-14T23:30:06.180 回答