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批处理文件中的循环:错误:“该命令的语法不正确”
将一个参数分配给“ 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)