从bat文件中的输出中提取数据

Ami*_*ein 2 windows-7 command-line batch-file

我想将我的 ip 添加到 bat 文件中的系统/用户环境。

这是bat文件的代码

curl http://httpbin.org/ip
Run Code Online (Sandbox Code Playgroud)

这是输出:

{
   "origin": "1.2.3.4"
}
Run Code Online (Sandbox Code Playgroud)

我要设置环境 set ip=1.2.3.4

我该怎么做?

Dav*_*ill 6

我想在bat文件中将我的IP地址添加到系统/用户环境中。

curl http://httpbin.org/ip
Run Code Online (Sandbox Code Playgroud)

这是输出:

{
   "origin": "1.2.3.4"
}
Run Code Online (Sandbox Code Playgroud)

使用以下批处理文件 (test.cmd):

rem @echo off
setlocal enableDelayedExpansion
for /f "usebackq skip=1 tokens=2" %%i in (`curl http://httpbin.org/ip`) do (
  setx ip %%~i
  goto :done
  )
:done
endlocal
Run Code Online (Sandbox Code Playgroud)

笔记:

  • skip=1用于跳过第一行{
  • goto :done用于跳过最后一行}
  • ~ 用于从 IP 地址中删除引号。

进一步阅读

  • Windows CMD 命令行的 AZ 索引- Windows cmd 行相关的所有内容的极好参考。
  • for /f - 针对另一个命令的结果循环命令。
  • 参数- 命令行参数(或参数)是传递给批处理脚本的任何值。
  • setx - 永久设置环境变量,SETX 可用于为机器 (HKLM) 或当前登录用户 (HKCU) 设置环境变量。