2011-02-09 22 views
0

我有一個程序在註冊表中生成一些數據。 我用「reg export HKCU \ Software \ ProgramName \ Data data.reg」(Unicode格式)保存。 我需要將它帶到其他計算機並將其導入,以便該計算機上的程序可以使用這些數據。 但我必須從data.reg中刪除一些文本行。文本行很容易找到,因爲它們包含一些字符串(例如exe和dll路徑,特定程序設置(如「name1 = value1」,「name2 = value2」等))。 現在我這樣做手動(使用寫字板)每隔幾天,但也許有另一種方式...... 哦,我不能在這些計算機上安裝其他程序(訪問限制),所以我不得不使用批處理/ cmd文件。 我試過到目前爲止什麼: - 重定向輸出到「騙子」,但僅限於視覺不變量; - 使用「for/F ...」,但這隻適用於ANSI並刪除空白行。如何在Windows中使用批處理命令從Unicode註冊表文件中刪除幾行?

在導入之前必須刪除這些行,因爲第一臺計算機上的程序設置不能從第二臺計算機加載到該程序的註冊表項中。

有人能幫幫我......? 謝謝。

+0

,如果你指定什麼字符串進行刪除它會幫。只是刪除前後的一些示例,以便我們可以瞭解要刪除的內容 – 2011-02-09 23:27:56

+0

例如程序的路徑(exe,dlls)... – Cosmin 2011-02-10 00:24:00

回答

0

使用此代碼迴路通過線

FOR /F %z IN (yourfile.reg) DO ... 

然後使用條件,以確定此行是要保持

IF (%z)==[put your key string here] 

如果是這樣(或如果不)一個文件內容行,然後將該變量寫入目標文件

@echo %z >> output.reg 

您可以用com替換文件名普通話行參數,使用%1%2等

總之,則:

FOR /F %z IN (%1) DO IF NOT (%z)==[skip this line] @echo %z >> %2 

因爲你沒有給一些關鍵細節,我在這裏做一些假設。進一步閱讀可以發現在這個優秀的資源:http://www.robvanderwoude.com/batchfiles.php

+0

謝謝。但我提到了爲什麼我不能使用「for/F」:因爲它只與ANSI一起工作,文件是Unicode,它刪除空白行。幾天前,我嘗試了「FOR/F%z IN(yourfile.reg)DO ...」,但該文件甚至沒有被處理......以及您指的是哪些關鍵細節..? – Cosmin 2011-02-09 23:59:34

0

一個例子會很好,但您可以使用reg delete刪除導入您的.reg文件後您想要的鍵/值?

相關問題