我想从句子或文件路径中获取最后一个单词
我尝试了其他文章和论坛的解决方案,但似乎无法弄清楚。这是我到目前为止所拥有的
@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%中放入的文件路径的最后一句话
答案 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