无法让此 IPCONFIG 命令显示在 <p></p> HTML 标记之间
Cant get this IPCONFIG command to display between <p></p> HTML tags
我无法让这个简单的代码显示 <p>
/</p>
HTML 标签之间的 IP 地址。
下面的代码有效,输出到文本文件就可以了。
if /i %opt%==1 ipconfig |findstr "IPv4">>"..\LOGS\%NAME%\%serial% %MAC%".txt
下面的代码是我想嵌入 CMD 代码的地方,但它只是忽略代码或以纯文本打印,具体取决于我如何修改它;它需要转义字符吗?
^<td width="38%%" class="table-border-left"^>^<p^>IP Address^</p^>^</td^>
并输出到 HTML 文件:
>> "..\LOGS\NAME%\%serial% %MAC%".html
有什么建议吗?
你的问题本质上是,'How do I obtain just the IPv4 Address from ipconfig.exe, and use it'?
batch-file example using your ipconfig命令,(结果返回为%%J
):
For /F "Delims=" %%G In ('%SystemRoot%\System32\ipconfig.exe
^| %SystemRoot%\System32\findstr.exe /R /C:"^[ ][ ]*IPv4[ ]"'
) Do For /F "Tokens=1,* Delims=:" %%H In ("%%G") Do For /F %%J In ("%%I"
) Do Echo ^<td width="38%%" class="table-border-left"^>^<p^>%%J^</p^>^</td^>
以上是单行命令,未经修改已被拆分工作,但仍保持可读性。如果你想 运行 它作为单行那么它看起来像这样:
For /F "Delims=" %%G In ('%SystemRoot%\System32\ipconfig.exe ^| %SystemRoot%\System32\findstr.exe /R /C:"^[ ][ ]*IPv4[ ]"') Do For /F "Tokens=1,* Delims=:" %%H In ("%%G") Do For /F %%J In ("%%I") Do Echo ^<td width="38%%" class="table-border-left"^>^<p^>%%J^</p^>^</td^>
请注意,TCP/IP可能绑定了多个适配器,因此您可能会看到返回的结果不止一个
要创建有效的 HTML,我建议您使用像 xidel 这样的工具,而不是摆弄 Batch(以及许多转义字符)。
ipconfig | xidel -se "(<td width='38%' class='table-border-left'><p>{extract($raw,'IPv4.+: (.+)',1)}</p></td>)"
或者,您可以使用 system()
从查询中调用 ipconfig
,而不是通过管道将 ipconfig
传递给 xidel
。为了正确缩进,您可以使用 --output-node-indent
.
xidel -se "(<td width='38%' class='table-border-left'><p>{extract(system('ipconfig'),'IPv4.+: (.+)',1)}</p></td>)" --output-node-format=html --output-node-indent
我无法让这个简单的代码显示 <p>
/</p>
HTML 标签之间的 IP 地址。
下面的代码有效,输出到文本文件就可以了。
if /i %opt%==1 ipconfig |findstr "IPv4">>"..\LOGS\%NAME%\%serial% %MAC%".txt
下面的代码是我想嵌入 CMD 代码的地方,但它只是忽略代码或以纯文本打印,具体取决于我如何修改它;它需要转义字符吗?
^<td width="38%%" class="table-border-left"^>^<p^>IP Address^</p^>^</td^>
并输出到 HTML 文件:
>> "..\LOGS\NAME%\%serial% %MAC%".html
有什么建议吗?
你的问题本质上是,'How do I obtain just the IPv4 Address from ipconfig.exe, and use it'?
batch-file example using your ipconfig命令,(结果返回为%%J
):
For /F "Delims=" %%G In ('%SystemRoot%\System32\ipconfig.exe
^| %SystemRoot%\System32\findstr.exe /R /C:"^[ ][ ]*IPv4[ ]"'
) Do For /F "Tokens=1,* Delims=:" %%H In ("%%G") Do For /F %%J In ("%%I"
) Do Echo ^<td width="38%%" class="table-border-left"^>^<p^>%%J^</p^>^</td^>
以上是单行命令,未经修改已被拆分工作,但仍保持可读性。如果你想 运行 它作为单行那么它看起来像这样:
For /F "Delims=" %%G In ('%SystemRoot%\System32\ipconfig.exe ^| %SystemRoot%\System32\findstr.exe /R /C:"^[ ][ ]*IPv4[ ]"') Do For /F "Tokens=1,* Delims=:" %%H In ("%%G") Do For /F %%J In ("%%I") Do Echo ^<td width="38%%" class="table-border-left"^>^<p^>%%J^</p^>^</td^>
请注意,TCP/IP可能绑定了多个适配器,因此您可能会看到返回的结果不止一个
要创建有效的 HTML,我建议您使用像 xidel 这样的工具,而不是摆弄 Batch(以及许多转义字符)。
ipconfig | xidel -se "(<td width='38%' class='table-border-left'><p>{extract($raw,'IPv4.+: (.+)',1)}</p></td>)"
或者,您可以使用 system()
从查询中调用 ipconfig
,而不是通过管道将 ipconfig
传递给 xidel
。为了正确缩进,您可以使用 --output-node-indent
.
xidel -se "(<td width='38%' class='table-border-left'><p>{extract(system('ipconfig'),'IPv4.+: (.+)',1)}</p></td>)" --output-node-format=html --output-node-indent