windows - DOS/Windows 批处理文件 (.BAT) 中 SET 后的 REG 命令为 "unknown"

标签 windows batch-file cmd registry batch-processing

在我的批处理文件中,我开始使用变量,突然以下命令不再起作用。

这是我的代码中有问题的部分

SET "path=MyPath"
REG ADD "HKCU\Software\ETC\ETC" /f /v "MyRegNameA" /t REG_SZ /d "%path%\ETC\"
REG ADD "HKCU\Software\ETC\ETC" /f /v "MyRegNameB" /t REG_SZ /d "%path%"
PAUSE
START "" "%path%\MyProgram.exe"  

此代码无需 SET... 即可工作,当然也可使用 MyPath 而不是 %path%。错误消息是:

The command "REG" is either spelled wrong or couldn't be found

我之前在这里找到了如何使用变量:stackEx.SetVariables 据我所知,我完全按照预期做的,到目前为止我找不到具体的帮助。

最佳答案

path 是一个逻辑名称,但它不是一个好用的名称,因为它是由 Windows 分配的。

path 是 Windows 用于查找程序的以分号分隔的目录列表。当您更改它时,Windows 无法再找到 reg.exe,因为 reg.exe 不在 mypath 中。

只需选择另一个名称 - 不要使用路径。如果您在提示符处输入 set,您将看到 Windows 建立的许多变量的列表。简单的规则 - 不要将它们中的任何一个用于用户变量。

关于windows - DOS/Windows 批处理文件 (.BAT) 中 SET 后的 REG 命令为 "unknown",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27870367/

相关文章:

git - Msys Git merge 工具命令选项问题

batch-file - Windows CMD - 在 for 循环中设置不起作用

c - C 中的命名管道读取奇怪的结果

python - 如何对因库函数而挂起的函数实现超时?

Windows Batch - 检查一个命令变量是否出现在另一个命令变量中

python - Windows shell %ERRORLEVEL% 变量是否有字符限制?

windows - 在 bat 文件上调整命令提示符

powershell - 有没有办法使用 cmd.exe 或 powershell 将文件夹移动到垃圾箱?

windows - Azure:如何将消息从有害队列移回主队列?

windows - 在 Windows 上编译 Erlang 代码