本帖最后由 Nikki 于 2025-1-24 14:57 编辑
注册表文件自身可以直接双击导入,但转换成批处理却不行,尝试的方法如下:
①将注册表用 reg2cmd.exe 等工具转换成 reg add 形式的命令再运行导入,带命令的 Command 子项未能导入:“指定的路径无效”、“找不到网络路径”。
②将注册表转换成 powershell -Command "XXXXXX" 的形式,再用批处理运行导入,报错结果同上。
③原样写入注册表内容到临时文件 %regfile%,然后再以 regedit /s %regfile% 命令导入,发现带命令的 Command 子项未能输出到临时文件中。
④将注册表以二进制或十六进制嵌入,这个看着就复杂而且后期也不便于直接在 notepad 编辑,所以放弃了...
注册表代码如下,作用是添加右键菜单项: | Windows Registry Editor Version 5.00 | | | | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\CopyContent] | | "Icon"="DxpTaskSync.dll,-52" | | "MUIVerb"="复制内容到剪切板" | | | | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\CopyContent\Command] | | @="mshta vbscript:createobject(\"shell.application\").shellexecute(\"cmd.exe\",\"/c clip < \"\"%1\"\"\",\"\",\"open\",0)(close)" | | | | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\GetHash] | | "Icon"="imageres.dll,-5372" | | "MUIVerb"="获取哈希值" | | | | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\GetHash\Command] | | @="mshta vbscript:createobject(\"shell.application\").shellexecute(\"powershell.exe\",\"-noexit write-host '\"\"%1\"\"';$args = 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'mactripledes', 'ripemd160'; foreach($arg in $args){get-filehash '\"\"%1\"\"' -algorithm $arg | select-object algorithm, hash | format-table -wrap}\",\"\",\"open\",3)(close)"COPY |
本人批处理小白,上述转换过程使用了 Copilot、GPT4o、通义千问、文心一言等AI工具,无一例外都失败了,这里求助各位大佬,感激不尽! |