Powershell 如何在文件的选定位置放置/替换一个单词?

Powershell 如何在文件的选定位置放置/替换一个单词?,powershell,Powershell,我想在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~" WS

我想在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文件。这样,

# Powershell
$servers = get-content c:\my\servers\list.txt
foreach($s in $servers)
{
   # Call the VBScript and pass each server as argument
   & c:\my\scripts\telnet.vbs $s
}

' VBScript
Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")"

' Build the open command string by catenating "open",
' server name from script arguments and "<enter>" together
dim openCmd
set openCmd = "open " & WScript.Arguments(0) & "~"

oShell.Run "telnet"
WScript.Sleep 3000
oShell.Sendkeys openCmd
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
#Powershell
$servers=获取内容c:\my\servers\list.txt
foreach($s,单位为$server)
{
#调用VBScript并将每个服务器作为参数传递
&c:\my\scripts\telnet.vbs$s
}
'VBScript
选项显式
迪姆奥谢尔酒店
设置oShell=Wscript.CreateObject(“Wscript.Shell”)“
'通过链接“打开”来构建打开命令字符串,
'来自脚本参数的服务器名称和''一起
dim openCmd
set openCmd=“open”&WScript.Arguments(0)&
奥谢尔,运行“telnet”
WScript.sleep3000
oShell.Sendkeys-openCmd
WScript.Sleep 5000
oShell.Sendkeys“y~”
WScript.Sleep 5000
oShell.Sendkeys“fusion ~”
WScript.Sleep 4000
oShell.Sendkeys“tnniw~”
WScript.Sleep 4000
Sendkeys“shutdown-r-t0”
Wscript.Quit

将服务器名称传递给VBScript如何?我不知道如何在PowerShell中执行此操作。