样本:
reg,[hkey_local_machine\softwar\wow6432node], “pathethic”=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00 ,57,00,53,00,\00,00
//忽略解析和格式化部分。,我需要将其转换为原始字符串。,预期输出:
%systemroot%,实际输出:
c:\windows,问题是,当用户最初运行命令终端时,它会展开: reg add hkey_local_machine\softwar\wow6432node /v pathetic /t reg_expand_sz /d “%systemroot%”。稍后使用实际扩展的字符串。例如:初始 %systemroot% = 实际 c:\windows。当我将十六进制字符串转换为常规字符串时,我得到 c:\windows。,这就是为什么我想知道是否有任何库或工具可以通过提供值来获取密钥,即反向。 c:\window :=os.getenv(???).,我尝试过手动执行此操作,但扩展的字符串比我预期的要多。因此,我的程序是有限的。请告知此问题的任何解决方案。
`,我没有找到一个接受
c:\windows
并提供 %systemroot%
的库,但它可以使用 os.environ()
轻松实现。,进口:,值 -> 键数组的哈希映射:,返回给定值的键列表的函数:,现在您可以在主函数中使用 getenvkeysbyvalue() 函数:,输出:,这样就不需要手动编写 switch case 语句了。,确保仅调用 createenvhashmap()
一次,然后多次调用 getenvkeysbyvalue(envmap, value)
以在 o(1) 时间内获取键列表。,