minha sugestão é usar o PowerShell; -).
$text = "spain is in.the.european.union"
$vara = $text.Substring(0, $text.lastIndexOf('.'))
$varb = $text.Split(".")[-1]
saída:
PS C:\WINDOWS\system32> $vara
spain is in.the.european
PS C:\WINDOWS\system32> $varb
union
para usar isso em um script cmd, isso definirá %vara% e %varb% corretamente, para usá-lo ainda mais em seu script cmd.
for /f "delims=" %%a in (' powershell "$env:elvariato.Substring(0, $env:elvariato.lastIndexOf('.'))" ') do set "vara=%%a"
for /f "delims=" %%a in (' powershell "$env:elvariato.split('.')[-1]" ') do set "varb=%%a"
%vara% contém spain is in.the.european e %varb% contém union neste caso
Explicação:
-
Substring(0, $text.lastIndexOf('.'))obtém tudo desde o início da string (0) até o último. -
split('.')[-1]divide sua string em cada ponto e obtém o último valor na matriz criada