Powershell专栏:
(Get-Content hist3.txt) | ForEach-Object { $_.split(" ",2)[0]} | ForEach-Object { $rgbArray = @($_)} | for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}
错误讯息:
行:1字符:114
- ..." ",2)[0]} | ForEach-Object {$ rgbArray = @($ _)} | for($ i = 0; $ i -le ...
- 〜缺少关闭')'在表达中。在行:1 char:150
... y = @($ _)} | for($ i = 0; $ i -le $ rgbArray.length - 1; $ i ++){$ rgbAr ...
〜意外的令牌')'在表达或陈述中。
- CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException
- FullyQualifiedErrorId:MissingEndParenthesisInExpression
hist3.txt:
2 1388581
3 1449812
4 63829
5 10477
6 5878
7 6703
8 105349
9 8639
10 7270
(Get-Content hist3.txt)
ForEach-Object { $_.split(" ",2)[0]}
ForEach-Object { $rgbArray = @($_)}
for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}
我上面的代码似乎错过了一个括号。或者它可能不会在管道中识别出$ rgbArray?
你能告诉我我缺少或需要阅读的信息吗?我如何使这个工作?
最终目标是将元素实际加载到数组中,然后将几个元素与同一数组中的其他元素进行比较。所以我会一次访问同一个数组的多个部分。
对PowerShell来说很新,谢谢你的帮助。
答案 0 :(得分:2)
您无法将任何内容传输到for
。 About For描述它是语言命令而不是cmdlet。
很难猜到你的最终目标。首先,按顺序尝试下一个代码片段,看看会发生什么:
Get-Content 'hist3.txt'
然后
Get-Content 'hist3.txt' | ForEach-Object { $_.split(" ",2)[0]}
然后
Get-Content 'hist3.txt' | ForEach-Object { $_.split(" ",2)[0]} |
ForEach-Object {
$rgbArray = @($_)
for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}
}
后者与下一个单行相同:
(Get-Content 'D:\PShell\Downloaded\hist3.txt.txt' ) | ForEach-Object { $_.split(" ",2)[0]} | ForEach-Object { $rgbArray = @($_); for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}}
答案 1 :(得分:1)
#you can do simply that:
Import-Csv 'hist3.txt' -Delimiter ' ' -Header Col1, Col2 | select Col1
#or this
Get-Content 'hist3.txt' | %{ ($_ -split ' ')[0]}