我正在循环浏览一些文件,并希望将文件名添加到现有文件中。 我以为我的东西还可以,但是第二次循环,我丢失了文件的现有结尾,并获得了System.Object []而不是以前的内容。
这里的一个简单示例大致显示我正在做什么来预先添加信息,并复制结果(我不想要!)。
$a = "1","2","3"
$b = "test"
$c = -join $b,$a
# At this point, $c is as I expect; it has added $b to the start of the list.
$a = $c
$c = -join $b,$a
# This time, when I try to add $b to the front of $a, it correctly adds the new line, and the second line is also correct, but then it dumps the object properties of the remaining lines (or something?)
输出如下所示
test
test
Length : 3
LongLength : 3
Rank : 1
SyncRoot : {1, 2, 3}
IsReadOnly : False
IsFixedSize : True
IsSynchronized : False
Count : 3
如果你使用set-content将它写入文件,那么它将对象属性写为System.Object [],这不是我想要的!
由于
更新: 根据这篇原帖的评论,我正在寻找的解决方案是使用$ a =(,$ b)+ $ a。 这具有将$ b中的字符串前置到存储在$ a。
中的字符串数组的开头的效果答案 0 :(得分:2)
我想,你需要澄清一下:
$a = "1","2","3"
$b = "test"
$c = -join $b,$a
不会创建包含
的数组$c
'test', '1', '2', '3'
而$c
看起来像这样:
'test', ('1', '2', '3')
我认为你想做的是:
$c = $b , $a
导致
'test', '1', '2', '3'