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