[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] reg2bat不能成功转换此项注册表,请教手动怎么写,谢谢。(已解决)

本帖最后由 houxiren 于 2022-6-8 00:59 编辑

注册表如下:
[HKEY_CLASSES_ROOT\Directory\background\shell\NEWTEXT]
@="新建文本文档"
"icon"="\"D:\\ZSXUN\\Software\\Software\\EmEditor\\EmEditor.exe\""
这两句可以成功转换,跳过。下面这句用了好几个 reg2bat 软件转出来的都不能成功写入注册表(备注:不是权限问题)

[HKEY_CLASSES_ROOT\Directory\background\shell\NEWTEXT\command]
@="cmd.exe /c \"for /l %%x in (1, 1, 100) do ( if not exist \"%V\"\\EmptyFile%%x.txt ( type NUL > \"%V\"\\EmptyFile%%x.txt&&exit))\""

打开注册表看的话,内容如下:
cmd.exe /c "for /l %%x in (1, 1, 100) do ( if not exist "%V"\EmptyFile%%x.txt ( type NUL > "%V"\EmptyFile%%x.txt&&exit))"

用 Reg Converter 转换出来的如下,但不能成功写入。
Reg add "HKCR\Directory\Background\shell\NEWTEXT\command" /ve /t REG_SZ /d "cmd.exe /c \"for /l %%%%x in (1, 1, 100) do ( if not exist \"%%%%V\"\EmptyFile%%%%x.txt ( type NUL > \"%%V\"\EmptyFile%%%%x.txt&&exit))\"" /f

谢谢大家!

回复 1# houxiren


搞清楚特殊字符的转义,你就不需要使用那些软件了,完全参考自己写,参考:
https://mp.weixin.qq.com/s/OQxeZJI85wejmCzQ315dHA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. reg add "HKCR\Directory\background\shell\NEWTEXT\command" /ve /t REG_SZ /d "cmd.exe /c \"for /l %%%%x in (1, 1, 100)do ( if not exist \"%%V\"\EmptyFile%%%%x.txt ( type NUL ^> \"%%V\"\EmptyFile%%%%x.txt^&^&exit))\"" /f
复制代码

TOP

回复 3# smss
感谢您。成功添加了!

TOP

回复 2# Batcher
感谢前辈教导,马上学习去!感谢!

TOP

本帖最后由 houxiren 于 2022-6-13 08:50 编辑

回复 2# Batcher
前辈,您好。用以下三行可以添加右键菜单。
第1行  Reg add "HKCR\*\shell\EverythingSearch1" /ve /t REG_SZ /d "E搜索" /f
第2行  Reg add "HKCR\*\shell\EverythingSearch1" /v "icon" /t REG_SZ /d "\"D:\Everything\Everything.exe\"" /f
第3行  Reg add "HKCR\*\shell\EverythingSearch1\command" /ve /t REG_SZ /d "\"D:\Everything\Everything.exe\" -name-part \"%%1\" -sort \"Date Modified\" -maximized -details" /f

D盘有 D:\1234567890-1-1.TXT,D:\1234567890-1-2.TXT …… 几十个文件
在资源管理器中,在 D:\1234567890-1-1.TXT 右击该右键菜单,将可以调用 Everything 搜索 "1234567890-1-1.TXT"

我的目的:只提取文件名的前12个字符, 连接一个“*”号,连接后缀,调用 Everything 搜索 "1234567890-1*.TXT", 这样就可以搜索到 D 盘的那几十个 txt 文件了(而不是只搜索1234567890-1-1.TXT)。

请问第 3 行的代码该怎么写?

我目前的过渡方案是:
第 3 行注册表写  "D:\Everything\Everything.bat" "%1"

Everything.bat 的内容如下:

setlocal enabledelayedexpansion
SET filename=%1
call :rune %filename%
:rune
SET filen=%~n1
"D:\Everything\Everything.exe" -name-part "%filen:~0, 12%*%~x1" -sort "Date Modified" -maximized -details

TOP

返回列表