无忧启动论坛

标题: 注册表值里面的批处理代码怎么开启变量延迟 [打印本页]

作者: houxiren    时间: 2023-3-5 19:50
标题: 注册表值里面的批处理代码怎么开启变量延迟
本帖最后由 houxiren 于 2023-3-6 11:57 编辑

以下两句代码,可以为文件的右键菜单,添加一个名为“显示文件名”的选项,其中的 command 值,是把批处理语句直接写入,这种做法的好处是比调用 bat 文件更稳健。感谢8楼 @holley2008 前辈指导,加/v 参数开启变量延迟成功
reg add "HKCR\*\shell\ShowFileName" /ve /d "显示文件名" /f

reg add "HKCR\*\shell\ShowFileName\command" /ve /d "cmd.exe /v /c \"set \"filename=%%1\" ^&^& echo !filename! ^&^& pause\"" /f

谢谢大家!


作者: 2010feicool    时间: 2023-3-5 21:06
本帖最后由 2010feicool 于 2023-3-5 21:38 编辑

看错了,确实难搞
平时我都是直接调用写好的.bat或.COM文件的
作者: houxiren    时间: 2023-3-5 22:26
2010feicool 发表于 2023-3-5 21:06
看错了,确实难搞
平时我都是直接调用写好的.bat或.COM文件的

感谢回复,我就是想不到方法,不知道是不是此路不通。
作者: 2010techon    时间: 2023-3-6 10:04
cmd 命令行下开启变量延迟还真没这么用过
先单独用cmd 命令行试一下,可以的话再写注册表
作者: holley2008    时间: 2023-3-6 11:15
我记得 cmd好像默认是禁用延迟扩展的
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

/C      执行字符串指定的命令然后终止
/K      执行字符串指定的命令但保留
/S      修改 /C 或 /K 之后的字符串处理(见下)
/Q      关闭回显
/D      禁止从注册表执行 AutoRun 命令(见下)
/A      使向管道或文件的内部命令输出成为 ANSI
/U      使向管道或文件的内部命令输出成为
        Unicode
/T:fg   设置前台/背景颜色(详细信息见 COLOR /?)
/E:ON   启用命令扩展(见下)
/E:OFF  禁用命令扩展(见下)
/F:ON   启用文件和目录名完成字符(见下)
/F:OFF  禁用文件和目录名完成字符(见下)
/V:ON   使用 ! 作为分隔符启用延迟的环境变量
        扩展。例如,/V:ON 会允许 !var! 在执行时
        扩展变量 var。var 语法会在输入时
        扩展变量,这与在一个 FOR
        循环内不同。
/V:OFF  禁用延迟的环境扩展。



作者: houxiren    时间: 2023-3-6 11:57
holley2008 发表于 2023-3-6 11:15
我记得 cmd好像默认是禁用延迟扩展的
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON ...

感谢指导,开启成功。
作者: nowayer    时间: 2023-12-14 08:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: hehuiying    时间: 2024-3-31 06:08
谢谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3