如何将批处理脚本输出的十六进制转换为十进制?
如何将批处理脚本输出的十六进制转换为十进制?
本文将介绍如何使用批处理脚本将 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%)
代码解释
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 著作权归作者所有。请勿转载和采集!