Batch file 获取运行批处理文件的文件夹名称(版本号)的最简单方法是什么?

Batch file 获取运行批处理文件的文件夹名称(版本号)的最简单方法是什么?,batch-file,Batch File,我有以下文件夹结构: C:\SomeFolder\SubFolder\Version\Version\IMS 我在C:\SomeFolder\SubFolder\Version中有一个批处理脚本,需要输入目录Version\u IMS 版本可以是例如5.3.12.0,并且在更改时不是恒定的。所以我不知道 我需要在脚本中提取它所在的最后一个目录,例如5.3.12.0,然后我可以进入5.3.12.0\u IMS 最简单的方法是什么 for %%a in ("%~dp0.") do cd /d "%%

我有以下文件夹结构:

C:\SomeFolder\SubFolder\Version\Version\IMS

我在C:\SomeFolder\SubFolder\Version中有一个批处理脚本,需要输入目录Version\u IMS
版本可以是例如5.3.12.0,并且在更改时不是恒定的。所以我不知道

我需要在脚本中提取它所在的最后一个目录,例如5.3.12.0,然后我可以进入5.3.12.0\u IMS

最简单的方法是什么

for %%a in ("%~dp0.") do cd /d "%%~fa\%%~nxa_IMS"
在哪里

%~dp0
是当前批处理文件的驱动器和路径

%%~fa
是可替换参数
%%a的
引用的元素的完整路径

%%~nxa
是可替换参数
%%a
引用的元素的名称和扩展名


因此,我们检索包含批处理文件的文件夹的引用,获取该文件夹的名称,并使用它将(我使用了
cd
)输入子文件夹

,由于某些原因,这不起作用。我用echo替换“cd”,并获取:/d“folder\SubFolder\5.2.15.37\\u IMS”5.2.15.37\\u IMS是真实的,而我替换的另一部分是。。。看起来%%~nxa不起作用了…@ilayzeidman,对不起,输入错误。我漏掉了一个点。答案已更新。