我似乎无法使用Powershell访问网页.我一直得到"(407)代理身份验证要求".我尝试了很多东西.我不知道代理是什么或它需要什么样的身份验证.我唯一可以访问的是IE,它使用脚本进行配置.我尝试使用一些IP,但没有运气.有任何想法吗?
这是我尝试过的一个例子:
$wc = New-Object System.Net.WebClient
$wc.Headers.Add("User-Agent","Mozilla/4.0+")
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$wc.DownloadString("http://stackoverflow.com")
Run Code Online (Sandbox Code Playgroud) 我有一个对象数组,我试图操纵它,并得到一个错误,属性RptFile不存在.我检查了拼写和所有内容,并对所发生的事情感到困惑.
给出错误的代码:
$AllContents | Where-Object {$_.RptFile -eq 'CB-Officer Trial New'}
AllContents | Get-Member returns:
TypeName: Selected.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
RptFile NoteProperty System.String RptFile=ABL - Branch5206 Daily OD Report
TotalSeconds NoteProperty System.String TotalSeconds=25
Run Code Online (Sandbox Code Playgroud)
所以财产确实存在.知道发生了什么事吗?如果我只输入$ AllContents,我也会得到一个包含该属性的列表.
我有两个Excel电子表格我想比较:
$OleDbAdapter = New-Object System.Data.OleDb.OleDbDataAdapter “Select * from [Report$]“,”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=S:\FIS-BIC Reporting\Report Output Files\Product-Marketing\TEST_XI\ECM - Pipeline by LOB_04182013_040544.xls;Extended Properties=”"Excel 12.0 Xml;HDR=YES”";”
$RowsReturned = $OleDbAdapter.Fill($DataTable)
$OleDbAdapter2 = New-Object System.Data.OleDb.OleDbDataAdapter “Select * from [Report$]“,”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=S:\FIS-BIC Reporting\Report Output Files\Product-Marketing\ECM - Pipeline by LOB_04182013_074004.xls;Extended Properties=”"Excel 12.0 Xml;HDR=YES”";”
$RowsReturned2 = $OleDbAdapter2.Fill($DataTable2)
Compare-Object $DataTable $DataTable2
Run Code Online (Sandbox Code Playgroud)
它什么都不返回.我知道在第6栏中,它们是不同的.如果我指定"-property F6",它确实会返回差异.除非我指定属性,否则任何想法都没有?列数可以变化(虽然比较中的每个文件都相同),因此具体指定属性将不起作用.
我编写了一个脚本来通过使用 7-Zip 压缩文件来备份一堆文件。问题是某些文件包含“&”和“'”(单引号)。我尝试用“`'”或“``'”替换它们(在下面的变量中),但这也不起作用。我想我不确定与Invoke-Expression一起使用时转义字符如何工作。
以下是代码行:
$exec = "& 'C:\Program Files\7-Zip\7z.exe' u -mx5 -tzip -r '$DestFileZip' '$DestFile'"
Invoke-Expression $exec
Run Code Online (Sandbox Code Playgroud) 我在 Powershell 中使用正则表达式。我有一个非捕获组,但它仍然显示在我的结果中。
字符串是:
Grid1.Data = [['TRE - Significant Flux','EG Report','w939909','59e8a31f-d9e9-4ebf-a027-929ec62953ac'],['CB - Daily OD Report','EG Report','w9
39909','59e8a31f-d9e9-4ebf-a027-929ec62953ac'],['BC - Balance Transfers Daily - DRAFT','BC - Balance Transfers Daily - DRAFT','w939909','59e8
a31f-d9e9-4ebf-a027-929ec62953ac'],['CB - CL Activity Report','CB - CL Activity Report','w939909','59e8a31f-d9e9-4ebf-a027-929ec62953ac']]
Run Code Online (Sandbox Code Playgroud)
正则表达式是:
$regex = "(?:\[').*?(?=')"
Run Code Online (Sandbox Code Playgroud)
它仍然返回诸如 ['TRE - 显着通量
我需要排除开头的“['”。单引号末尾的非捕获组正在工作。
我试图创建一个目录结构,如果它不存在于另一个位置.它工作正常,但我在名称中带括号的任何目录上都出错.我想我不得不以某种方式逃脱,但不知道如何.
脚本代码:
$source = "c:\data"
$destination = "c:\scrap\data"
Get-ChildItem -Path $source -Recurse -Force |
Where-Object { $_.psIsContainer } |
ForEach-Object { $_.FullName -replace [regex]::Escape($source), $destination } |
ForEach-Object {
if (!(Test-Path -path $_ )) { $null = New-Item -ItemType Container -Path $_ }
}
Run Code Online (Sandbox Code Playgroud) 我有一个这样的字符串:"00:02:37.6940000".有没有一种简单的方法可以将其转换/解析为秒?我是否必须将它拼凑成片并按照这种方式进行操作?
我不关心毫秒.