Пакетный скрипт для чтения последнего слова предложения - PullRequest
0 голосов
/ 18 января 2019

Я хочу получить последнее слово из предложения или пути к файлу

Я пробовал решения из других статей и форумов, но никак не могу понять это. вот что у меня пока

@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 голосов
/ 18 января 2019

Хотя решение Герхардса 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
0 голосов
/ 18 января 2019

Просто чтобы ответить конкретно на ваш вопрос:

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

Также посмотрите, как я использовал двойные кавычки для set переменной. Это позволяет нам избавиться от любого необходимого пробела после значения, а также, если мы добавим кавычки после равенства, они станут частью значение, которое не то, что мы действительно хотим.

Чтобы понять ссылки на переменные, для от cmdline for /? Я предлагаю вам также увидеть set /?

Кроме того, на основании вашего комментария, если вы хотите установить его как viarble, просто сделайте это:)

@echo off
set "a=C:\Some\Random\File\Path.txt"
for %%i in (%a%) do set variablename=%%~nxi
echo %variablename%
pause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...