如何将批处理脚本输出的十六进制转换为十进制?

本文将介绍如何使用批处理脚本将 reg query 命令输出的十六进制端口号转换为十进制。

问题背景

当使用以下批处理命令查询远程桌面端口号时:batchreg query 'HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' /v 'PortNumber'

输出结果为:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp PortNumber REG_DWORD 0xd3d

输出的端口号 0xd3d 是十六进制格式,不便于阅读。

解决方案

可以使用 FOR /F 命令解析命令输出,并将十六进制转换为十进制:batch@echo off

for /f 'tokens=2' %%a in ('reg query 'HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' /v 'PortNumber' ^| findstr /i 'PortNumber'') do ( set /a decimal=%%a echo PortNumber in decimal: %decimal%)

代码解释

  1. for /f 'tokens=2' %%a in (...):使用 FOR /F 命令循环处理命令输出。tokens=2 表示提取每行输出的第二个字段(即端口号)。2. reg query ... ^| findstr /i 'PortNumber':执行 reg query 命令并使用 findstr 命令过滤包含 'PortNumber' 的行。3. set /a decimal=%%a:使用 set /a 命令将十六进制值 %%a 转换为十进制,并存储在变量 decimal 中。4. echo PortNumber in decimal: %decimal%:输出转换后的十进制端口号。

总结

通过上述代码,可以将 reg query 命令输出的十六进制端口号转换为十进制,方便阅读和使用。

如何将批处理脚本输出的十六进制转换为十进制?

原文地址: https://www.cveoy.top/t/topic/b2je 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录