在批处理文件中在分隔符的最后一个实例之后提取字符串

Der*_*om8 3 string split batch-file delimiter

我正在编写Java程序调用的Windows批处理文件。表示文件目录的许多不同字符串作为参数传递到批处理文件中。我试图弄清楚如何在最后一个“ \”实例之后提取字符串。例如,我有三个目录:

C:\Users\owner\Documents
C:\Users\owner\Videos
C:\Users\owner\Pictures\Trip
Run Code Online (Sandbox Code Playgroud)

我想将其拆分成字符串:

Documents
Videos
Trip
Run Code Online (Sandbox Code Playgroud)

你们如何建议我这样做?

编辑:在此处已询问一个后续问题:Windows批处理文件中的循环:错误:“该命令的语法不正确”

Aac*_*ini 5

将一个参数分配给“ param”变量后,使用:

for %%a in (%param:\= %) do set lastDir=%%a
Run Code Online (Sandbox Code Playgroud)

只要最后一个目录没有空格,此方法就起作用。如果需要,此细节可能是固定的。所有参数的处理如下:

:nextParam
   set "param=%~1"
   if not defined param goto endParams
   for %%a in (%param:\= %) do set lastDir=%%a
   echo Last dir: %lastDir%
   shift
goto nextParam
:endParams
Run Code Online (Sandbox Code Playgroud)

或者,以一种更简单的方式(没有空间限制):

:nextParam
   if "%~1" equ "" goto endParams
   echo Last dir: %~N1
   shift
goto nextParam
:endParams
Run Code Online (Sandbox Code Playgroud)