我有一个文件名,我希望提取其中的两个部分并添加到变量中,以便可以比较它们是否相同。
$name = FILE_20161012_054146_Import_5785_1234.xml
Run Code Online (Sandbox Code Playgroud)
所以我要...
$a = 5785
$b = 1234
if ($a = $b) {
# do stuff
}
Run Code Online (Sandbox Code Playgroud)
我尝试提取第36至第39个字符
Select-Object {$_.Name[35,36,37,38]}
Run Code Online (Sandbox Code Playgroud)
但我明白了
{5,7,8,5}
考虑过拆分但看起来很乱。
我有一个PowerShell脚本,可以在某些服务器上执行检查,例如Test-ConnectionPING。
我希望通过执行“ FTP Open”命令来检查具有FTP服务器的服务器之一。我不需要登录或上传/下载任何文件,只需要知道FTP服务器是否响应即可。
我在互联网上进行的大多数研究都指向设置凭据和导入专有模块以进行连接(也许是上传或下载文件),但是我只需要一种简单的方法来打开连接,并告诉我是否存在响应服务器。
我从中运行此脚本的服务器应安装最少的软件,但如果需要安装任何软件,最好是Microsoft及其网站。
我有一个日志文件(*.log)我想解析和查询如下:
Line 33043: 17/07/2016;13:26:45;GetMasterOrderNo;Master Order No is : 1117103907 for SoSupplierOrderNo, 1117103907 Line 33048: 17/07/2016;13:26:45;AddAutoPurchHdr;Could not save PurchHdr record - The supplier order number has already been used in Delivery Note No.1117103907 (Order No.1117103907), Supplier SupplierName(51) Line 33049: 17/07/2016;13:26:45;ImportASN;ConvertASNFiles: Failed to import GRN1171_0000700384_1117103907.xml. Could not save PurchHdr record - The supplier order number has already been used in Delivery Note No.1117103907 (Order No.1117103907), Supplier SupplierName(51)
我想要做的是用标题分割每一行,如下所示:
...所以我可以对此进行查询.
这样做的最佳方式是什么?
我遵循了一个创建哈希表并将其转换为HTML的示例
http://stackoverflow.com/questions/19455435/converting-hashtable-in-powershell
Run Code Online (Sandbox Code Playgroud)
这是基于此OP的答案的示例:
$Summary = @{
Computers=$ADServerCount.count
DMZ=$TotalDMZ.count
No_Ping=$TotalNoPing.count
Reg_Failed=$TotalRegFailed.count
RebootPending=$TotalPendingReboot.count
RebootNotRequired=$TotalNoPatchRequired.count
}
[PSCustomObject]$Summary | Convertto-HTML -fragment
Run Code Online (Sandbox Code Playgroud)
...这就是我只运行$ Summary的结果-正是我期望的结果:
Name Value
---- -----
RebootNotRequired 69
DMZ 10
Computers 341
Reg_Failed
RebootPending 137
No_Ping 80
Run Code Online (Sandbox Code Playgroud)
但是,如果尝试转换为HTML,请运行[PSCustomObject] $ Summary | Convertto-HTML -fragment,我没有上面的值:
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tr><th>IsReadOnly</th><th>IsFixedSize</th><th>IsSynchronized</th><th>Keys</th>
<th>Values</th><th>SyncRoot</th><th>Count</th></tr>
<tr><td>False</td><td>False</td><td>False</td><td>System.Collections.Hashtable+
KeyCollection</td><td>System.Collections.Hashtable+ValueCollection</td><td>Syst
em.Object</td><td>1</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
请帮忙。谢谢
这是更多代码-如您所见,还有两个可以转换为HTML表的变量:$ GroupPendingRebootbyOwner和$ OlderThan30Days,但是$ Summary返回gobbledygook。我已经截断了通过电子邮件发送的其余代码。
$Summary = @{
Computers=$ADServerCount.count
DMZ=$TotalDMZ.count
No_Ping=$TotalNoPing.count
Reg_Failed=$TotalRegFailed.count
RebootPending=$TotalPendingReboot.count
RebootNotRequired=$TotalNoPatchRequired.count
}
$ExecSummary = [PSCustomObject]$Summary | Convertto-HTML -fragment
$GroupPendingRebootbyOwner = $AllTeamsFilter …Run Code Online (Sandbox Code Playgroud)