2012-07-30 98 views
1

我有一个批处理文件,这需要作为参数文件路径如何获取字符串的最后一个单词?

set filePath = %1 

现在,让我们说,文件路径为:C:\Temp\Folder,我想设置Folder在一个新的变量。我怎样才能做到这一点?

我在网上搜索,并且所有的解决方案是这样的:

for %%A in (%filePath%) do set last=%%A 

,但这仅适用于字符串用空格。通过将~n修饰符%1

set filePath=%1 
set filePath=%filePath:\= % 
for %%A in (%filePath%) do set last=%%A 
+0

这可能有所帮助:http://www.dostips.com/DtTipsStringManipulation.php#Snippets.SplitString – nolegs 2012-07-30 17:34:52

回答

3

您可以从C:\Temp\Folder提取Folder

SET "last=%~n1" 

如果最后

3

您可以用空格代替斜线,然后解析出来商品可能包含.,请使用~nx代替:

SET "last=%~nx1" 

~n修饰符适用于位置参数或循环变量,并从由该参数或变量指定的路径中提取姓氏。 ~x修改器提取姓氏的扩展名(从最后的.开始的部分)。因此,~nx提取(最后)名称和扩展名。

+0

谢谢,这工作。 – Schaliasos 2012-07-30 17:38:26

+0

巧妙的技巧,尽管很脆弱。如果名称包含空格,则结果将不正确。不过,如果OP只打算在没有空格的情况下使用这个名字,我想这应该是。 – 2012-07-30 17:59:09

相关问题