0

在我创建的应用程序中,我需要它来编写一个 Visual Basic 脚本来更改 IP 地址

脚本如下...

Dim strIPAddress
Dim strSubnetMask
Dim strGateway
Dim intGatewayMetric
Dim strDns1
Dim strDns2

strIPAddress = "192.168.1.211"
strSubnetMask = "255.255.255.0"
strGateway = "192.168.0.11"
intGatewayMetric = 1
strDns1 = "8.8.8.8"
strDns2 = "4.4.4.4"

Set objShell = WScript.CreateObject("Wscript.Shell")
objShell.Run "netsh interface ip set address name=""Local Area Connection"" static " & strIPAddress & " " & strSubnetMask & " " & strGateway & " " & intGatewayMetric, 0, True
objShell.Run "netsh interface ip set dns name=""Local Area Connection"" static "& strDns1, 0, True
objShell.Run "netsh interface ip add dns name=""Local Area Connection"" addr="& strDns2, 0, True
Set objShell = Nothing
WScript.Quit

我试图写这个的方式如下..

    Directory.CreateDirectory("C:\SpecMee\IPChanger\")
    Dim objwriter As New System.IO.StreamWriter("C:\SpecMee\IPChanger\IpChanger.vbs")


    objwriter.WriteLine("Dim strIPAddress" & Environment.NewLine & "Dim strSubnetMask" & Environment.NewLine & "Dim strGateWay" & Environment.NewLine & "Dim intGatewayMetric" & Environment.NewLine & "Dim strDns1" & Environment.NewLine & "Dim strDns2" & Environment.NewLine & "strIPAddress = """ & Environment.NewLine & TB_IPAddress & Environment.NewLine &)

    objwriter.Close()
    MessageBox.Show("Created")

我遇到的问题是一个,它需要两岁,我将如何在脚本中包含“”。

我不介意花时间在这上面,我只是不知道我是否以正确的方式去做。

任何帮助,将不胜感激。

谢谢克里斯

4

2 回答 2

1

将脚本作为文本文件资源添加到您的项目中。用某个已知值替换脚本中 IP 地址的所有实例,然后使用 string.replace:

Const ipPlaceHolder As String = "##IP##"
    Dim scriptContent As String = My.Resources.script.Replace(ipPlaceHolder, myTextBox.Text)
    IO.File.WriteAllText("C:\SpecMee\IPChanger\IpChanger.vbs", scriptContent)

其中 myTextBox 包含用户输入,文本文件资源名为“脚本”

于 2012-07-10T21:37:34.997 回答
0

连续的两个引号在输出中产生一个。
“他说”“她吹了!””

(你有两个问题合二为一。这在 Stackoverflow 上被认为不是好习惯。)

于 2012-07-10T21:26:59.317 回答