批处理脚本以读取句子的最后一个单词

时间:2019-01-18 01:29:13

标签: windows batch-file

我想从句子或文件路径中获取最后一个单词

我尝试了其他文章和论坛的解决方案,但似乎无法弄清楚。这是我到目前为止所拥有的

@echo off
set a="C:\Some\Random\File\Path.txt"
echo %a%
set b=%a:\= %
echo %b%
for /f "tokens=*" %%a in (%b%) do @echo %%a %%b %%c
pause

我所需要的只是我在%a%中放入的文件路径的最后一句话

2 个答案:

答案 0 :(得分:1)

只需回答您的问题即可

@echo off
set "a=C:\Some\Random\File\Path.txt"
for %%i in (%a%) do echo %%~nxi
pause

还请参见我如何在变量的set处使用双引号,这使我们可以消除值后面的任何所需空格,并且如果在等号后添加引号,它们将变为价值的一部分,这不是我们真正想要的。

要了解变量引用,从cmdline for /?开始,我建议您也看到set /?

另外,根据您的评论,如果您想将其设置为水瓶,只需执行:)

@echo off
set "a=C:\Some\Random\File\Path.txt"
for %%i in (%a%) do set variablename=%%~nxi
echo %variablename%
pause

答案 1 :(得分:0)

尽管Gerhards解决方案 IS 更可取(对于路径),但您的方法并不差。

您只需要使用一个简单的
因此,它会在空间上迭代,因此必须取消引用分隔的元素。

重复设置相同的变量将保留最后的值/单词。

:: Q:\Test\2019\01\18\SO_54246604.cmd
@echo off
set "a=C:\Some\Random\File\Path.txt"
echo %a%
for  %%a in (%a:\= %) do Set "b=%%a"
echo %b%
pause

> SO_54246604.cmd
C:\Some\Random\File\Path.txt
Path.txt