找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 35506|回复: 9

[注册表类] [已解决]批处理怎么把读到的注册表指定项的16进制数值转成10进制?

[复制链接]
发表于 2010-12-2 16:21:00 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-3-16 11:08 编辑

想使用reg query 读出远程桌面的16进制数字,并得到最后的代码,然后转成10进制,然后显示出来
想用它来读出端口数字,然后让用户输入数字,重设远程桌面的端口。
想要解决的问题是:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber"

读出的是: PortNumber  REG_DWORD  0xd3d
这里我不会做了,0xd3d其实数据应该是d3d转成10进制就是3389,怎么进行处理得到3389
请求帮助,研究这些还是很有意思的。

[ 本帖最后由 xiaoyuwxz 于 2010-12-4 10:12 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-12-2 20:10:27 | 显示全部楼层
  1. @echo off
  2. set /a n=0xd3d
  3. echo %n%
  4. pause
复制代码
发表于 2010-12-2 20:13:07 | 显示全部楼层
  1. for /f "skip=4 tokens=3" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber"') do (set/a a=%%a&call echo %a%)
复制代码
 楼主| 发表于 2010-12-4 01:05:18 | 显示全部楼层
谢楼上的,但我运行它后 echo %a%是显示空白
发表于 2010-12-4 07:09:54 | 显示全部楼层

回复 4楼 的帖子

set/a a=%%a&call echo %a%
如果要call这个a变量,则不能set/a a=%%a,因为call的时候使用%%,分不清楚%%a指的是set赋值的变量,还是for扩展的变量,默认for子句内,for扩展的优先,所以出错。
所以正确应该写成:
  1. for /f "skip=4 tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber') do set/a b=%%a&call echo %%b%%
复制代码
 楼主| 发表于 2010-12-4 07:41:17 | 显示全部楼层
谢谢回复,我运行出来还是空白啊。
发表于 2010-12-4 10:42:04 | 显示全部楼层
把你运行的整个代码都贴上来
 楼主| 发表于 2010-12-4 11:15:48 | 显示全部楼层
  1. @echo off
  2. color 0D
  3. MODE con: COLS=71 LINES=25
  4. title 远程桌面端口修改程序
  5. :getport
  6. set /p getport=请输入需设定远程桌面的端口号:
  7. if /I "%getport%"=="" Goto noset else goto setport

  8. :setport
  9. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  10. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  11. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  12. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Terminal Server\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  13. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  14. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "%getport%" /f >nul
  15. echo 远程桌面端口已设置为:%getport%,请牢记,按任意键退出!
  16. pause >nul
  17. goto end

  18. :noset
  19. echo 输入值为空,端口未改变,按任意键退出!
  20. pause >nul
  21. goto end
复制代码
这是个我做的改远程桌面端口的程序,我想在
  1. :getport
  2. set /p getport=请输入需设定远程桌面的端口号:
复制代码
前显示出系统当前的远程桌面的端口
发表于 2010-12-4 11:31:49 | 显示全部楼层
  1. @echo off&color 0D&MODE con: COLS=71 LINES=25
  2. title 远程桌面端口修改程序
  3. for /f "skip=4 tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber') do set/a a=%%a
  4. :getport
  5. set/p getport=当前远程桌面端口:%a%,请输入需设定远程桌面的端口号:
  6. if "%getport%"=="" (Goto noset) else goto setport
  7. :setport
  8. for %%a in (ControlSet001 ControlSet002 CurrentControlSet) do for %%b in (Wds\rdpwd\Tds\tcp WinStations\RDP-Tcp) do reg add "HKLM\SYSTEM\%%a\Control\Terminal Server\%%b" /v PortNumber /t REG_DWORD /d %getport% /f
  9. echo 远程桌面端口已设置为:%getport%,请牢记,按任意键退出!
  10. pause>nul&exit
  11. :noset
  12. echo 输入值为空,端口未改变,按任意键退出!
  13. pause>nul
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-4 11:43 编辑 ]

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-12-4 13:57:43 | 显示全部楼层
才发现竟然是系统不同而不同,
刚在VM里装上XP,在XP下是正常的,而我使用的2003里却无法显示,这两个版本的CMD不同啊。
如果是在2003里应该怎么改呢,主要应用在2003系统上。

[ 本帖最后由 xiaoyuwxz 于 2010-12-4 13:59 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 12:50 , Processed in 0.021863 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表