我在目录中有一个BAT文件
D:\dir1\dir2\getpath.bat
Run Code Online (Sandbox Code Playgroud)
当我用下面的代码运行蝙蝠时,它会打印出来
D:\dir1\dir2\
Run Code Online (Sandbox Code Playgroud)
我只想要路径 D:\dir1\
目录结构不固定,需要除BAT文件所在的当前目录以外的完整目录路径.
@echo off
SET SUBDIR=%~dp0
ECHO %SUBDIR%
Run Code Online (Sandbox Code Playgroud)
尝试在for循环中使用delims,但它没有帮助.
如果它是您想要的脚本所在目录的父目录,请尝试以下操作:
@echo off
SET batchdir=%~dp0
cd /D "%batchdir%.."
echo %CD%
cd "%batchdir%"
Run Code Online (Sandbox Code Playgroud)
(未经测试,如有问题请评论)
请注意,如果您的批处理驻留在驱动器根目录中(如),这当然不会改变任何内容F:\;)如果您想要特殊的输出(如果是这种情况),您应该在回显之前进行%CD%测试。%batchdir%
编辑:应用补丁,请参阅@RichardA的评论