powershell - 将 HTTP 状态代码发送到写控制台和剪贴板
问题描述
我有一个小的 PowerShell 脚本,我需要将 HTTP 状态代码发送到写控制台和 Windows 剪贴板。目前,我可以将 HTTP 状态代码发送到控制台(写控制台),但不能发送到剪贴板(同时)。我有一个非常具体的极端情况,我需要将状态代码发送到两个地方。下面的工作示例仅将状态代码发送到控制台。通过编辑,我可以将状态代码发送到剪贴板,但它不会发送到控制台。似乎 PowerShell 将允许您发送到其中一个,但不能同时发送到两者。注意:example.com 不是我正在使用的实际 URL,也不是 API 密钥。
#####################
#requires -Version 5
#requires -PSEdition Desktop
class TrustAllCertsPolicy : System.Net.ICertificatePolicy {
[bool] CheckValidationResult([System.Net.ServicePoint] $a,
[System.Security.Cryptography.X509Certificates.X509Certificate] $b,
[System.Net.WebRequest] $c,
[int] $d) {
return $true
}
}
[System.Net.ServicePointManager]::CertificatePolicy = [TrustAllCertsPolicy]::new()
$apiKey = "1HuDSkiLXFwib2FqJ88mgtfd1mMpaJoR"
$url = "http://www.example.com"
$header = @{"USPTO-API-KEY" = $apiKey}
#Tries 10 times:
# $i=1; while($i -lt 10){Try{(Invoke-WebRequest -Method GET -Uri $url -Headers $header).StatusCode}catch{Write-Host($_.Exception.Response.StatusCode.value__)} ;$i++}
#This would be even better. It tests until it gets something other than a 200 or hits a maximum;
$i=1
Do{
Try{$SC=(Invoke-WebRequest -Method GET -Uri $url -Headers $header).StatusCode}
catch{$SC=($_.Exception.Response.StatusCode.value__)}
Write-host($SC)
$i++}
Until($SC -ne 200 -or $i -gt 10)
######## END ################
解决方案
使用 '+=' 复制变量,添加新项目,并保存旧变量。如果变量很大,它可以加起来。我首选的方式是使用列表:
$clipboard = New-Object Collections.Generic.List[String]
$clipboard.Add($SC)
...
Set-Clipboard $clipboard
推荐阅读
- pytorch - DataParallel 如何确定我要使用哪个 gpu?
- c# - IdentityRole 和 IdentityUser 之间的网络核心区别
- neo4j - Cypher Query 需要很长时间才能找到结束节点
- python - 删除以 '.' 结尾的特定行的最后一个字符
- javascript - 使用javascript切换功能后,如何在浏览器调整大小时使导航链接重新出现/重置为默认值?
- c# - 如何防止其他程序重命名其他顶级窗口标题
- python - 计算一段时间内的平均值,而不是组内的平均值
- r - 使用 dplyr 进行分组数据帧扩展
- powerbi - 电源 BI。将“空白”值替换为 0,但它在数据库中不为空
- c# - 如何为 DataGridView 中的特定单元格定义恒定大小?