麻烦在一个批处理文件中添加一个reg

时间:2019-02-14 09:57:45

标签: batch-file regedit

我有一个带有两个reg add命令的批处理文件。两者似乎都可以工作,但是其中一个会在注册表中显示约5秒钟,然后消失。我已经尝试了所有格式设置样式,但无法坚持下去。这是我正在使用的两个reg添加:

 reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v CrashPlanTray /t REG_SZ /d C:\Users\%USERNAME%\AppData\Local\Programs\CrashPlan\electron\CrashPlanDesktop.exe --menubar --desktop=false --user.install

 reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v CrashPlanServiceUser /t REG_SZ /d C:\Users\%USERNAME%\AppData\Local\Programs\CrashPlan\CrashPlanService.vbs

这是第一个不会卡住的CrashPlanTray。

我尝试过在数据值之前和数据值末尾添加\。它将把它添加到注册表中,但几秒钟后便消失了。

 reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v CrashPlanTray /t REG_SZ /d "\"C:\Users\%USERNAME%\AppData\Local\Programs\CrashPlan\electron\CrashPlanDesktop.exe\" --menubar --desktop=false --user.install

几天来,我一直在拍摄和使用它时遇到麻烦。我可以在命令窗口中使它正常工作并坚持下去,但是一旦将其放入批处理文件中,它就不再坚持下去。我可以使用一些专家帮助来弄清楚为什么它不会保留在注册表中?

3 个答案:

答案 0 :(得分:1)

在第一个reg上,尝试以下操作:

reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v CrashPlanTray /t REG_SZ /d "\"%localappdata%\Programs\CrashPlan\electron\CrashPlanDesktop.exe\" --menubar --desktop=false --user.install"

请特别注意将完整字符串括在注册表中的双引号(开头和结尾),以及将路径括起来的转义符(出于示例目的,我缩短了上面的路径:

"\"%localappdata%\..\CrashPlanDesktop.exe\" --menubar --desktop=false --user.install"

最后,还要注意我们可以使用%localappdata%代替C:\users\%username%\..

答案 1 :(得分:0)

我要做的第一件事是因为位置使用环境变量是使用REG_EXPAND_SZ而不是REG_SZ

我将使用反斜杠来转义所有内部双引号并保护位置,因为它们可能包含空格之类的东西。

我会在顶部将通用字符串设置为值,以便更轻松地修改和缩短行,并且可能还会使用插入符号 ^ 来缩短行为了提高可读性。

最后,如果要从注册表运行键运行VBScript,则实际上应该从WScript.exeCScript.exe运行它。我在下面的示例中使用WSCript,但是您可以将其替换为CScript和所需的所有必需选项。

@Set "Key=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
@Set "Loc=%%LocalAppData%%\Programs\CrashPlan"
@Reg Add "%Key%" /V "CrashPlanTray" /T REG_EXPAND_SZ /D^
 "\"%Loc%\electron\CrashPlanDesktop.exe\" --menubar --desktop=false --user.install" /F>Nul
@Reg Add "%Key%" /V "CrashPlanServiceUser" /T REG_EXPAND_SZ /D^
 "WScript \"%Loc%\CrashPlanService.vbs\"" /F>Nul

答案 2 :(得分:0)

我不知道到底发生了什么变化,但是在完全卸载并重新安装了CrashPlan之后,所有功能又恢复了。现在,我可以运行批处理文件来禁用和重新启用它,它们现在可以正常工作。由于我使用的是您在修订的批处理文件中建议的内容的摘要,因此您的工作并没有浪费,这使它们更易于阅读和使用。感谢您的帮助和耐心。