【发布时间】:2017-10-06 11:41:51
【问题描述】:
我想在我的 PowerShell 脚本中调用 telnet.vbs。
该脚本应在 foreach 循环的每次迭代中重新启动主机 $line。
telnet.vbs脚本:
Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")"
oShell.Run "telnet"
WScript.Sleep 3000
oShell.Sendkeys "open $line~"
WScript.Sleep 5000
oShell.Sendkeys "y~"
WScript.Sleep 5000
oShell.Sendkeys "fusion~"
WScript.Sleep 4000
oShell.Sendkeys "tnniw~"
WScript.Sleep 4000
oShell.Sendkeys "shutdown -r -t 0~"
Wscript.Quit}
我想在循环中运行这个脚本,在 telnet.vbs 内部,$line 应该在每次迭代中被替换:
foreach($line in $servers)
{
& .\telnet.vbs
}
我试过了:
(Get-Content .\telnet.vbs).Replace("(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))","$line") | Set-Content .\telnet.vbs
但它什么也没做。肯定是语法错误。
【问题讨论】:
-
如何将服务器名称传递给VBScript as a parameter?
-
我不知道如何在 PowerShell 中进行操作。
标签: powershell