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

Windows 从echo%cd%命令中删除父目录名,windows,command-line,windows-xp,cmd,windows-console,Windows,Command Line,Windows Xp,Cmd,Windows Console,我们知道echo%cd%命令打印工作目录,假设它是“C:\test\bin\run”,我想知道如何从字符串中删除“run”。第二次“运行”目录可以是“停止”目录。因此,我们不能使用字符串替换命令。我认为应该做的是删除最后一个“\”之后的字符串。有人知道如何在windows命令行(cmd)中执行此操作吗?如果可以在过程中更改目录,那么: set x=%cd% cd .. set parent=%cd% cd %x% 如果可以在过程中更改DIR,那么: set x=%cd% cd .. set p

我们知道echo%cd%命令打印工作目录,假设它是“C:\test\bin\run”,我想知道如何从字符串中删除“run”。第二次“运行”目录可以是“停止”目录。因此,我们不能使用字符串替换命令。我认为应该做的是删除最后一个“\”之后的字符串。有人知道如何在windows命令行(cmd)中执行此操作吗?如果可以在过程中更改目录,那么:

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

如果可以在过程中更改DIR,那么:

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

在命令行中,这起作用:

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A
现在,环境变量文件夹包含值“FOLDER”

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

如果使用tokens=2,则环境变量文件夹包含值“dir”

如果使用令牌=1,则环境变量文件夹包含值“c:”

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

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A
基于此,您可以构建一个循环,该循环将一直重复,直到文件夹为空字符串。 在循环中,您需要在每个步骤中将文件夹分配给LASTFOLDER。 循环完成后,LASTFOLDER包含当前目录的文件夹。 您还可以将代码放入单独的脚本“GetBaseFolder.BAT”并使用
在主批处理中“调用GetBaseFolder%CD%”。

在命令行中此操作:

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A
现在,环境变量文件夹包含值“FOLDER”

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

如果使用tokens=2,则环境变量文件夹包含值“dir”

如果使用令牌=1,则环境变量文件夹包含值“c:”

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

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A
基于此,您可以构建一个循环,该循环将一直重复,直到文件夹为空字符串。 在循环中,您需要在每个步骤中将文件夹分配给LASTFOLDER。 循环完成后,LASTFOLDER包含当前目录的文件夹。 您还可以将代码放入单独的脚本“GetBaseFolder.BAT”并使用 “调用主批处理中的GetBaseFolder%CD%”。

这显示了如何执行此操作:这显示了如何执行此操作: