适当的语法?缺少括号的Powershell错误但命令中只有6个括号?

时间:2017-01-15 03:40:55

标签: arrays powershell syntax runtime-error pipeline

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
  1. 所以我正在加载此文本文件:(Get-Content hist3.txt)
  2. 我需要隔离每行的第一个单词:ForEach-Object { $_.split(" ",2)[0]}
  3. 将每个第一个单词保存到一个数组中:ForEach-Object { $rgbArray = @($_)}
  4. 然后迭代该数组并逐个访问每个元素:for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}
  5. 我上面的代码似乎错过了一个括号。或者它可能不会在管道中识别出$ rgbArray?

    你能告诉我我缺少或需要阅读的信息吗?我如何使这个工作?

    最终目标是将元素实际加载到数组中,然后将几个元素与同一数组中的其他元素进行比较。所以我会一次访问同一个数组的多个部分。

    对PowerShell来说很新,谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您无法将任何内容传输到forAbout 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]}