
批處理如何替換文本中指定行的內容如題,我有一段注冊表文件,需要用批處理導入到注表冊中,但是該注冊表在32位和64位系統下的路徑不同,所以用批處理導入前必須處理一下:32位的路徑是[HKEY_LOCAL_MACHINESOFTWARELe]64位的路徑是:[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeLe],前面做個版本判斷,根據版本把相對應的路徑值賦予給變量X,再把變量X替換注冊表文件中的路徑即可。可是在替換的時候出現問題:注冊表文件內容是這樣的:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeLe]x=ss=li=Rfjur=6WHrtyrllxj=pW需要把注冊表文件的第三行替換成相應的路徑,在網上找的代碼如下:
- @echo off&setlocal enabledelayedexpansion
- for /f delims= %%a in (xyzc.txt) do (
- set /a num+=1
- if !num!==3 (echo b=4567) else echo %%a
- )>>temp.txt
- move temp.txt xyzc.txt
- pause
nclick="copycode($('code0'));">復制代碼
該代碼在一般情況下確實可以進行指定行的內容替換工作,但是用在我上面的注冊表文件中卻行不通,因為運行后,批處理會把空行刪除,然后再進行替換,這樣一來,原本的第二行就沒有了,第三行變成了第二行,第四行變成了第三行,替換的效果如下:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeLe][HKEY_LOCAL_MACHINESOFTWARELe]li=Rfjur=6WHrtyrllxj=pW根本達不到我想要的結果,有沒有大神教教我這個批處理要怎么寫才能不管前面有沒有空行都能正確的替換我指定的行的內容??