Windows 将整个注册表导出到相对路径

Windows 将整个注册表导出到相对路径,windows,64-bit,windows-8.1,Windows,64 Bit,Windows 8.1,使用以下代码 REGEDIT /E C:\output.reg 在C目录中创建一个注册表转储文件。当存在同名文件时,它会自动覆盖。当我尝试像这样将输出目录更改为相对路径时 REGEDIT /E output.reg 这是行不通的 没有创建任何文件,但处理时间与通常一样长。哪些代码可以使用相对路径导出整个注册表 与请求的一样,.bat代码包括调试代码: ECHO %CD% REGEDIT /E output.reg PAUSE 命令行输出: C:\Users\Username\Desktop

使用以下代码

REGEDIT /E C:\output.reg
在C目录中创建一个注册表转储文件。当存在同名文件时,它会自动覆盖。当我尝试像这样将输出目录更改为相对路径时

REGEDIT /E output.reg
这是行不通的

没有创建任何文件,但处理时间与通常一样长。哪些代码可以使用相对路径导出整个注册表

与请求的一样,.bat代码包括调试代码:

ECHO %CD%
REGEDIT /E output.reg
PAUSE
命令行输出:

C:\Users\Username\Desktop\New_folder>ECHO C:\Users\Username\Desktop\New_folder
C:\Users\Username\Desktop\New_folder

C:\Users\Username\Desktop\New_folder>REGEDIT /E output.reg

C:\Users\Username\Desktop\New_folder>PAUSE
Press any key to exit . . .
执行.bat文件之前(和之后)的文件夹:

您的问题中给出的命令的语法已经很好了。如果为输出文件名提供相对路径,则将相对于当前工作目录创建该文件。这可以通过交互式命令提示符轻松验证

无论批处理脚本出了什么问题,问题并不像您目前所猜测的那样。一些比较明显的解释包括:

  • 工作目录不是您认为的那样。通过向脚本添加调试代码以发出工作目录来验证它
  • 由于某种原因,该文件被锁定,因此regedit无法写入该文件
  • 您没有足够的权限写入工作目录
  • 更新

    非常感谢您的问题更新。我试图重新创建您的场景(我使用Windows 7,但我怀疑这是否重要),事实上,我发现了与您相同的问题。该命令在交互式控制台窗口中可以正常工作,但在批处理脚本中执行时不能正常工作

    我不知道为什么会这样,但这里有一个足够简单的解决方法,可以提供完整的路径:

    REGEDIT /E %cd%\output.reg REGEDIT/E%cd%\output.reg
    调试代码似乎只给出了我所在的目录。你有没有想到什么特别的代码?该文件未锁定,尚未创建。如果语法也正确,则该命令总体上肯定有问题,或者工作目录的显示方式确实与预期不同。请更详细地说明您的系统详细信息以及如何调用该命令。@请更详细地说明您的情况。你问题中的代码对Harry和我都很有效。问题似乎出在您的环境中。@David Heffernan我在上面添加了有关我的系统的标记。我在包含上述代码的新文件夹中创建了一个新的.bat文件,并通过双击运行它。它处理了请求并关闭了cmd窗口,但与绝对路径相反,文件夹中没有显示任何文件。同样有用的是批处理脚本文件,包括您添加的调试代码、该文件的位置,即工作目录,以及批处理脚本的输出。@David Heffernan我将所有内容都添加到了最上面的帖子中