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