2014-06-09 25 views
2

使用下面的代碼導出整個註冊表相對路徑

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文件執行:

+0

這對我的作品。 –

+0

請更具體地瞭解您的系統詳情以及您如何調用該命令。 –

+0

@BullyWiiPlaza你如何更具體。您的問題中的代碼對哈利和我自己都適用。問題似乎與您的環境有關。 –

回答

1

在你的問題中給出的命令的語法已經很好。如果爲輸出文件名提供相對路徑,則將相對於當前工作目錄創建該文件。這可以通過交互式命令提示輕鬆驗證。

無論你的批處理腳本出了什麼問題,問題都不像你目前猜測的那樣。一些更明顯的解釋包括:

  1. 工作目錄不是你認爲它是。通過向腳本添加調試代碼來驗證它以發出工作目錄。
  2. 由於某種原因文件被鎖定,因此註冊表無法寫入文件。
  3. 您沒有足夠的權限寫入工作目錄。

更新

非常感謝你的問題的更新。我試圖重新創建你的場景(我在Windows 7上,但我懷疑這一點很重要),事實上我找到了和你一樣的問題。該命令可以在交互式控制檯窗口中正常工作,但不能在批處理腳本中執行。

我不知道這是爲什麼,但在這裏,一個很簡單的解決方法是提供一個完整的路徑:

 
REGEDIT /E %cd%\output.reg 
+0

調試代碼似乎只能讓我看到我所在的目錄。您想到的任何特定代碼?該文件未鎖定,尚未創建。如果語法也是正確的,那麼一般而言該命令一定有問題,或者工作目錄確實看起來與預期不同。 –