2014-10-09 76 views
0

想知道是否有人可以提供帮助。我正在尝试使用powershell导入域列表并为其中的每个域生成一个HTTP请求。目前,我走了这么远:使用Import-CSV制作HTTP请求

$csvFilename = "C:\Sites\sites.csv" 
 
$csv = Import-Csv $csvFilename -Header @("url") | 
 
foreach { 
 

 
    $HTTP_Request = [System.Net.WebRequest]::Create('$csv') 
 

 
    $HTTP_Response = $HTTP_Request.GetResponse() 
 

 
    $HTTP_Status = [int]$HTTP_Response.StatusCode 
 

 
If ($HTTP_Status -eq 200) { 
 
    Write-Host "Site is OK!" 
 
} 
 
Else { 
 
    Write-Host "The Site may be down, please check!" 
 
} 
 

 
$HTTP_Response.Close() 
 

 
}

我不知道为什么,但“创建()”语句不会拿起URL。有任何想法吗?

非常感谢

回答

0

foreach循环里面,你可以访问当前元素与自动变量$_

所以$HTTP_Request = [System.Net.WebRequest]::Create('$csv') 通过 $HTTP_Request = [System.Net.WebRequest]::Create("$_")

但正如前面创建的方法是等待替换该行对于一个字符串,你将不得不扩展你的url属性(否则你得到一个pscustomObject不是一个字符串): Import-Csv c:\temp\urls.csv -Header "url" |select -expand url |%{ [System.Net.Webrequest]::Create("$_")}

+0

使用自动变量抛出“无法找到”创建“的重载和参数计数:”1“”,可能是CSV文件,所以我可能必须从那里开始 – 2014-10-09 13:14:56

+0

如果您正在运行ps v3尝试调用-webrequest($ _)' – 2014-10-09 13:57:00

+0

@StevenCopestake响应更新 – 2014-10-09 14:05:44