如何获取字符串的最后一个字?

时间:2012-07-30 17:32:39

标签: batch-file

我有一个批处理文件,它将文件路径作为参数

set filePath = %1

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

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

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

但这仅适用于带空格的字符串。

3 个答案:

答案 0 :(得分:3)

您可以用空格替换斜杠,然后解析出来:

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

答案 1 :(得分:3)

您可以通过将Folder修饰符应用于C:\Temp\Folder来从~n中提取%1

SET "last=%~n1"

如果最后一项可能包含.,请改为使用~nx

SET "last=%~nx1"

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

答案 2 :(得分:0)

您可以尝试

for /F "tokens=4*" %%G IN (Data.txt) DO (
set value1=%%G
echo %value1%
)

4 *是您要使用的单词的编号