我想使用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 :(得分:0)
C:\Windows\System32\drivers\etc
是一个目录。
答案 1 :(得分: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
当然,这并未解决附加已存在于文件中的数据的潜在问题。
如果您想先读取文件,请打开它进行阅读,阅读数据,关闭数据,然后重新打开它以进行追加并进行更改。没有必要打开它来写作。
如果要编辑文件,请将其读入,关闭,重新打开以进行写入,然后写出编辑过的数据。
答案 2 :(得分:0)
这是你需要的bat文件
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"