Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在批处理文件中最后一个分隔符实例之后提取字符串_String_Batch File_Split_Delimiter - Fatal编程技术网

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

String 在批处理文件中最后一个分隔符实例之后提取字符串,string,batch-file,split,delimiter,String,Batch File,Split,Delimiter,我正在编写一个由Java程序调用的Windows批处理文件。表示文件目录的许多不同字符串作为参数传递到批处理文件中。我试图找出如何在“\”的最后一个实例之后提取字符串。例如,我有三个目录: C:\Users\owner\Documents C:\Users\owner\Videos C:\Users\owner\Pictures\Trip 我想将其拆分,使字符串成为: Documents Videos Trip 你们建议我怎么做 编辑:这里询问了一个后续问题:如果字符串作为参数1-3传递。您

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

C:\Users\owner\Documents
C:\Users\owner\Videos
C:\Users\owner\Pictures\Trip
我想将其拆分,使字符串成为:

Documents
Videos
Trip
你们建议我怎么做


编辑:这里询问了一个后续问题:

如果字符串作为参数1-3传递。您可以使用%%n1、%~n2、%~n3获取路径中的最后一个文件夹。

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

for %%a in (%param:\= %) do set lastDir=%%a
只要最后一个目录没有空格,此方法就可以工作。如果需要,此细节可能会被修复。所有参数的处理如下所示:

: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
或者,以更简单的方式(没有空格限制):


我认为这是一个好的开始。我忘了提到有未知数量的参数传入批处理文件,因此我必须让程序确定参数的数量,并为每个参数确定参数的数量。您可以创建一个无限循环,读取“特定”(参数)处的值“位置和移位”,直到该位置的值变为空白。这个答案非常有用!这正是我想要的。感谢所有帮助过你的人!
:nextParam
   if "%~1" equ "" goto endParams
   echo Last dir: %~N1
   shift
goto nextParam
:endParams