2017-04-26 47 views
0

所以我试图做一个批处理文件,运行时打开一个txt文件。批处理,加引号到参数停止reg工作

reg add HKCR\txtfile\shell\open\command /ve /t REG_EXPAND_SZ /d %0 /f 

到目前为止好。但是当我打开文本文档时,由于空间在%0中而出现错误。

reg add HKCR\txtfile\shell\open\command /ve /t REG_EXPAND_SZ /d "%0" /f 

这不会给我一个错误,但注册表值不会改变。

reg add HKCR\txtfile\shell\open\command /ve /t REG_EXPAND_SZ /d ^"%0^" /f 

同样的事情。 那么我的问题在这里呢?

+0

为什么REG_EXPAND_SZ?没有什么可以扩展,所以只需使用REG_SZ! – Compo

回答

1

转义字符在这种情况下,(完全缺乏一致性的,我知道),是反斜杠:

Reg Add "HKCR\txtfile\shell\open\command" /VE /D \"%~0\" /F >Nul 
+0

C:/ Documents and settings/No Body/Desktop/txt.txt不是有效的Win32应用程序。在打开文本文件时:/ – Epic8009

+0

如果您查看注册表项,则可以清楚地看到数据是包含初始脚本路径的带引号的字符串。这正是你所要求的,入场不做你想要的事实是无关紧要的。 – Compo

+0

其没有改变的关键,我不得不手动把报价。 (windows xp是os btw)@Compo – Epic8009