2013-10-28 41 views
2

我想用VBScript將一行添加到C:\Windows\System32\drivers\etc\hosts。我試圖讀取該文件第一次使用此代碼:使用VBScript修改「C: Windows System32 drivers etc hosts」文件

Set filestreamIN = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Windows\System32\drivers\etc\hosts",2,true) 
file = Split(filestreamIN.ReadAll(), vbCrLf) 
for i = LBound(file) to UBound(file) 
msgbox file(i) 
Next 
filestreamIN.Close() 
Set filestreamIN = Nothing 

但我在第二行得到了一個錯誤:錯誤的文件模式。我使用這個命令運行它:

cscript "D:\Project\AXA\AXADEPROJ-867\add host.vbs" 

cmd作爲管理員運行。任何幫助都會很棒。

回答

0

打開文件進行追加,並輸出你想要的內容。它會自動附加。

Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oHosts = oFSO.GetFile("C:\Windows\System32\drivers\etc\hosts") 
WScript.Echo oHosts.attributes 
Set fileAPPEND = _ 
    oFSO.OpenTextFile("C:\Windows\System32\drivers\etc\hosts", 8, true) 
fileAPPEND.Write("192.168.0.1 MyMachine") 
fileAPPEND.Close() 
Set fileAPPEND = Nothing 
Set oHosts = Nothing 
Set oFSO = Nothing 

當然,這並沒有解決追加數據已經在文件中的潛在問題。

如果您想先閱讀文件,打開它閱讀,閱讀數據,關閉它,然後重新打開它進行附加並進行更改。沒有必要打開它寫作。

如果要編輯文件,請將其讀入,關閉,重新打開並寫入編輯後的數據。

0

C:\Windows\System32\drivers\etc是一個目錄。

+0

遺憾。我編輯了上面的代碼。 –

0

這裏是bat文件INC情況下,你需要

type "%windir%\system32\drivers\etc\hosts" | find /i "WEBSITE1" || echo 10.0.0.0 WEBSITE1 >> "%windir%\system32\drivers\etc\hosts" 

type "%windir%\system32\drivers\etc\hosts" | find /i "SERVER1" || echo 10.0.0.0 SERVER1 >> "%windir%\system32\drivers\etc\hosts" 
相關問題