首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正确的语法?Powershell错误,因为缺少括号,但命令中只有6个括号?

正确的语法?Powershell错误,因为缺少括号,但命令中只有6个括号?
EN

Stack Overflow用户
提问于 2017-01-15 03:40:54
回答 2查看 945关注 0票数 0

Powershell代码:

代码语言:javascript
运行
复制
 (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

  • .> {$rgbArray = @($_)} { $i = 0;$i -le.
  • ~缺少结尾‘)在表达式中。线:1字符:150
  • ..。.‘>( $i = 0;$i -le $rgbArray.length - 1;$i++ ){$rgbAr.
  • 表达式或语句中的~意外标记‘)。
代码语言:javascript
运行
复制
- CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
- FullyQualifiedErrorId : MissingEndParenthesisInExpression

第三组:

代码语言:javascript
运行
复制
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]}

我的上述代码似乎遗漏了一个括号。或者它没有识别出管道后面的$rgbArray?

你能告诉我我遗漏或需要阅读哪些信息吗?我该怎么做呢?

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

非常新的powershell,所以感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-15 04:14:32

您不能将任何东西输送到for中。约为描述它是语言命令,而不是cmdlet。

很难猜出你的最终目标。首先,按顺序尝试下一个代码片段,看看会发生什么:

代码语言:javascript
运行
复制
Get-Content 'hist3.txt'

然后

代码语言:javascript
运行
复制
Get-Content 'hist3.txt' | ForEach-Object { $_.split(" ",2)[0]}

然后

代码语言:javascript
运行
复制
Get-Content 'hist3.txt' | ForEach-Object { $_.split(" ",2)[0]} | 
   ForEach-Object { 
        $rgbArray = @($_) 
        for( $i = 0; $i -le $rgbArray.length - 1; $i++ ) {$rgbArray[$i]}
   }

后者与下一个班轮相同:

代码语言:javascript
运行
复制
(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]}}
票数 2
EN

Stack Overflow用户

发布于 2017-01-15 10:35:34

代码语言:javascript
运行
复制
#you can do simply that:
Import-Csv 'hist3.txt' -Delimiter ' ' -Header Col1, Col2 | select Col1


#or this
Get-Content 'hist3.txt' | %{ ($_ -split ' ')[0]}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41657595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档