Eu tenho a necessidade de adicionar o meu endereço IP externo ao registro do Windows em uma base programada, e eu quero fazer isso com um arquivo bat / cmd para automatizar o processo.
Consegui usar o conselho de esta postagem neste site para usar o curl.exe para obter meu IP externo usando o link e definir esse IP como uma variável dentro do processo em lote.
Agora só preciso de uma maneira de pegar essa variável e injetá-la no registro.
Eu sei que reg.exe ou regedit.exe pode adicionar informações ao registro referenciando um arquivo .REG, mas eu não sei exatamente como pegar a variável que recebo e adicioná-la sem um arquivo .REG.
Uma coisa que eu já tentei era usar um arquivo .REG já criado, copiando para um novo arquivo (para preservar o arquivo .REG original para reutilização), então use o echo para colocar a variável no arquivo .REG, como:
echo "some_reg_value"="%externalIP%" >> addIP.reg
O problema com isso é que a variável% externalIP% está adicionando um espaço adicional após o endereço IP, de modo que se parece com isso no arquivo .REG e no registro depois que o arquivo .REG é adicionado:
"some_reg_value"="192.168.1.100 "
Esse espaço extra no final causa um problema sério para o propósito que estou tentando usá-lo.
Existe possivelmente uma maneira de remover esse espaço extra da variável?
É assim que estou obtendo a variável:
%CURL%\curl http://icanhazip.com > %CURL%\publicIP.txt
for /f "delims= " %%G in (%CURL%\publicIP.txt) do set PublicIP=%%G & del %CURL%\publicIP.txt
Qualquer ajuda seria muito apreciada. Já faz um bom tempo desde que eu tentei fazer muito com scripts em lote e não me lembro de muitos dos comandos disponíveis.