2014-10-09 92 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