Извлечь подстроку внутри строки - PullRequest
0 голосов
/ 17 мая 2018

Учитывая следующую строку:

[0.020s][info][class,load] opened: C:\Program Files\Java\jdk-9.0.1\lib\modules

Как написать командный файл Windows .bat или командный сценарий .cmd, чтобы извлечь только часть строки C:\Program Files\Java\jdk-9.0.1? (использование его положения неудовлетворительно) .

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

Если строка содержится в переменной, вы можете использовать подстановку строк:

set string="[0.020s][info][class,load] opened: C:\Program Files\Java\jdk-9.0.1\lib\modules"
set "jdkmod="%string:*: =%"
set jdkmod

Пример вывода:

jdkmod="C:\Program Files\Java\jdk-9.0.1\lib\modules"
0 голосов
/ 17 мая 2018

Из вашего вопроса не ясно, откуда берется строка или она уже отфильтрована для конкретного вывода, который вы используете для этой строки.

В следующем предполагается, что вы искали путь до родительского каталога lib:

@Echo Off
Set "String=[0.020s][info][class,load] opened: C:\Program Files\Java\jdk-9.0.1\lib\modules"
For /F "Tokens=2*" %%A In ('"Echo %String:\lib\=&:%"') Do Set "var=%%~B"
Echo [%var%]
Pause

Пример вывода:

[C:\Program Files\Java\jdk-9.0.1]
0 голосов
/ 17 мая 2018

Попробуйте так, если строка находится в файле с именем input.txt:

for /f "tokens=2* delims=\:" %%a in (input.txt) do set "$path=%%a:\%%b"
echo %$path:~1%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...