给出以下字符串:
[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
部分? (使用其位置不满意)。
答案 0 :(得分:0)
如果字符串位于名为input.txt
的文件中,请尝试这样:
for /f "tokens=2* delims=\:" %%a in (input.txt) do set "$path=%%a:\%%b"
echo %$path:~1%
答案 1 :(得分:0)
如果字符串包含在变量中,则可以使用字符串替换:
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"
答案 2 :(得分:0)
从您的问题中不清楚字符串的来源,或者是否已针对该字符串使用的特定输出进行过滤。
以下假设您正在寻找直到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]