7

我想尝试将我的 bash 脚本从 linux 转移到 powershell,但不明白为什么它失败了。

Linux 命令:

wget  -q -x  --user-agent="blablabla" --keep-session-cookies --load-cookies cook.txt http://site.com/qqq

电源外壳代码:

$source = "http://site.com/qqq"
$destination = "d:\site\qqq" 

$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source, $destination)

但此代码仅下载没有 cookie 的页面。而且我找不到如何将 PHPSESSID 发送到站点。

请向我解释如何做到这一点。

4

1 回答 1

13

好的,所以你有两个选择。

  1. 在 Windows 上运行 wget。
  2. 在 webclient 对象上设置属性以复制 wget 标志设置的功能。

第一个很简单,只需下载Windows 版本的 wget即可。

这是第二个的代码。

$source = "http://site.com/qqq"
$destination = "d:\site\qqq" 

$wc = New-Object System.Net.WebClient
# Single Example
$wc.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "name=value")
# Multi Example
$wc.Headers.Add([System.Net.HttpRequestHeader]::Cookie, "name=value; name2=value2"); 
$wc.DownloadFile($source, $destination)

查看您的 cookies.txt 文件以获取名称值对。

我不确定如何复制-x. wget试试上面的方法,看看下载后它对文件做了什么。

注意 - 我无法测试这个......

于 2013-05-31T19:06:55.343 回答