powershell - 从 powershell 脚本导出 CSV
问题描述
我在 powershell 中有一段代码,我将其用作“安装配方”。我使用这个脚本来检查 PC 的准备工作是否良好,以及各种软件是否安装正确。Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
If ((Test-Path "C:\Program Files\7-Zip") -eq $True)
{Write-Host " ~ 7-ZIP : Installation => OK! ~" -ForegroundColor Green}
else{Write-Host " ~ 7-ZIP : Installation => NOK! ~" -ForegroundColor Red}
Sleep 3
If ((Test-Path "C:\Program Files (x86)\Adobe\Acrobat Reader DC") -eq $True)
{Write-Host " ~ Adobe Reader DC : Install => OK! ~" -ForegroundColor Green}
else{Write-Host " ~ Adobe Reader DC : Install => NOK! ~" -ForegroundColor Red}
exit
如果安装正常(OK),那么它会生成一个我们存储的值,然后导出到 .CSV 或 .XLSX 文件。如果安装不正常 (NOK),则同上。
你是怎样做的?
谢谢你的帮助
解决方案
一种方法是将每个未安装软件的名称保存到一个数组中以供以后处理。
话虽如此,可以改进有问题的测试路径。与其在这里和那里输入路径,不如将它们存储在一个集合中以便于处理。哈希表工作正常。像这样,
$ht = @{
"7-Zip" = "C:\Program Files\7-Zip"
"Adobe Reader DC" = "C:\Program Files (x86)\Adobe\Acrobat Reader DC"
"FooApp" = "C:\Program Files\FooApp"
}
$failedInstalls = @()
foreach($key in $ht.keys){
if(test-path $ht[$key] ) {
Write-Host " ~ $key : Installation => OK! ~" -ForegroundColor Green
} else {
Write-Host " ~ $key : Installation => NOK! ~" -ForegroundColor Red
$failedInstalls += $key
}
}
$failedInstalls
这里所做的是将软件名称和路径存储在哈希表中。因此,所有路径的一个中心位置。然后迭代集合并将每个缺失的软件添加到$failedInstalls
数组中。更改软件数量是微不足道的,它只需要更改哈希表 - 无需if(test-path...
为每个软件声明。
至于如何将数组导出为 XSLX 或 CSV,则留给读者作为练习。
推荐阅读
- r - 使用 ddply 计算每个组的平均工资时忽略 NA
- hive - PLSQL 到 Hive 查询函数的对话
- api - 我有兴趣捕捉 YouTube 视频的“书呆子统计数据”。我们是否有用于此类统计的 API
- java - 我可以使用 groupingBy 以声明方式执行此操作吗?
- c++ - C++中STL向量的生长因子是恒定的还是自适应的?
- graph - 找到图中所有节点都可以到达的最小顶点集
- django - 使用 AWS Elastic Beanstalk 的 Django-crontab
- cypress - 无法运行 browserstack-cypress
- python - Python包版本满意,但没有出现
- c++ - 调用完美转发的 lambda