2

Мне нужно добавить свой внешний IP-адрес в реестр Windows по расписанию, и я хочу сделать это с помощью файла bat/cmd, чтобы автоматизировать процесс.

Я смог воспользоваться советом из этого поста на этом сайте, чтобы использовать curl.exe для получения моего внешнего IP-адреса с помощью http://icanhazip.com и установить этот IP-адрес в качестве переменной в рамках пакетного процесса.

Теперь мне просто нужен способ взять эту переменную и вставить ее в реестр.

Я знаю, что reg.exe или regedit.exe могут добавлять информацию в реестр, ссылаясь на.REG-файл, но я не совсем знаю, как взять полученную переменную и добавить ее без.REG-файл

Одна вещь, которую я уже попробовал, была с помощью.REG-файл уже создан, копируя его в новый файл (чтобы сохранить оригинал.REG-файл для повторного использования), затем используйте echo для помещения переменной в.REG-файл, например:

echo "some_reg_value"="%externalIP%" >> addIP.reg

Проблема заключается в том, что переменная% externalIP% добавляет дополнительный пробел после IP-адреса, поэтому она выглядит так в.REG-файл и в реестре сразу.Добавлен REG-файл:

"some_reg_value"="192.168.1.100 " 

То дополнительное пространство в конце вызывает серьезную проблему для цели, для которой я пытаюсь использовать это.

Есть ли способ удалить это дополнительное пространство из переменной?

Вот как я получаю переменную:

%CURL%\curl http://icanhazip.com > %CURL%\publicIP.txt
for /f "delims= " %%G in (%CURL%\publicIP.txt) do set PublicIP=%%G & del %CURL%\publicIP.txt

Любая помощь будет принята с благодарностью. Прошло много времени с тех пор, как я пытался многое сделать с помощью пакетных сценариев, и я не могу вспомнить множество доступных команд.

1 ответ1

3

Я подозреваю, что решение болезненно «очевидно»:

… do set PublicIP=%%G& del %CURL%\publicIP.txt

т.е. не включать пробел в конце команды set PublicIP= .

Тем не менее, еще одна полезная уловка - %PublicIP:~0,-1% , то есть %PublicIP% с последним удаленным символом.  Смотрите help set .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .