arrays - Powershell 构建数组,每个项目换行
问题描述
使用Get-ChildItem
我已经提取了一个符合条件的文件列表,然后split
是其中的一部分,Basename
并希望使用该名称的该部分构建一个数组。我可以成功地做到这一点,除了数组返回长字符串。我希望数组的每个部分都返回一个新行。
脚本:
$files = GCI "\\Paths" -Recurse | Where-Object {$_.LastWriteTime -ge (Get-Date).Adddays(-22)}
$name = ""
foreach($file in $files){
$file = $file.basename.Split(".")[0]
$array += $file
}
我还尝试了以下方法,但没有成功:
$files = GCI "\\Paths" -Recurse | Where-Object {$_.LastWriteTime -ge (Get-Date).Adddays(-22)}
$name = ""
foreach($file in $files){
$file = $file.basename.Split(".")[0]
$array+= $file -split "`n"
}
调用时的当前结果$array
:
file01file02file03file04
调用时的期望结果$array
:
file01
file02
file03
file04
解决方案
该字符串被返回,因为$array
它不是一个数组。它是在赋值时输入的,它的第一个赋值是一个字符串。因此,它不断向该字符串附加新值。
您可以改为执行以下操作:
$array = foreach($file in $files){
$file.basename.Split(".")[0]
}
在 foreach 语句中输出迭代值时,可以将该语句输出捕获到变量中。每个值都是数组的一个元素。
顺便说一句,将元素添加到数组的+=
语法效率低下,因为每次检索当前数组的所有内容后都会创建一个新数组。
推荐阅读
- sql - 为什么我不能为这个表创建外键?
- javascript - 循环遍历对象并创建具有所需值的对象 Jquery
- php - jquery addclass 在 setinterval 内不断重置
- php - 使用 For 循环并将值与 Case PHP 相加
- javascript - Highcharts - 在设置最小-最大范围后获取所有可滚动的值
- google-classroom - 使用集成的 Google 表单 API 创建任务
- python - 为什么我无法在 1 个 python 代码中访问 2 个生成器对象
- ios - 从 LocationManager SwiftUI 获取纬度和经度的问题
- c++ - C++ boost::qi 将空格和换行符分隔的数字解析为二维向量
- c# - 如何在 C# 中正确编码阿拉伯字幕?