1

ここで書いた関数は、入力ファイル、少なくとも 1 つのハッシュ アルゴリズムを含むリスト、およびその入力ファイルのハッシュ値を保存する出力ファイルの 3 つの必須パラメーターを受け入れます。この関数は、入力ファイル、少なくとも 1 つのハッシュ アルゴリズムのリスト、およびその入力ファイルのハッシュ値を保存する出力ファイルの 3 つの必要なパラメーターを受け入れようとします。指定されたブロックにこの関数を効率的かつ効果的に実装するために必要なコードを記述して、関数を完成させようとしています。$hashAlgorithm の要素にアクセスするために何らかの形のループを実装しようとしています。

function Return-FileHash { 
param ( 
[Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$true)] 
[ValidateSet("SHA1","SHA256","SHA384","SHA512","MD5")] 
[STRING[]] 
# the array list that contains one or more hash algorithm input for Get-FileHash cmdlet 
$hashAlgorithm, 
[Parameter(Position=1, Mandatory=$true,ValueFromPipeline=$true)] 
# the document or executable input/InputStream for Get-FileHash cmdlet 
$filepath, 
[Parameter(Position=2,Mandatory=$true,ValueFromPipeline=$true)] 
# the output file that contains the hash values of $filepath 
$hashOutput 
) 
#============================ begin ==================== 
# Here, I am trying to use a loop expression to implement this
for( $i = 0; $i -lt $hashAlgorithm.Length; $i++)
{
Get -FileHash $hashAlgorithm -SHA1 | $hashOutput
}

# === end ================= 
Return-FileHash

私はこれを得る:

At line:19 char:38
+ Get -FileHash $hashAlgorithm -SHA1 | $hashOutput
+                                      ~~~~~~~~~~~
Expressions are only allowed as the first element of a pipeline.
At line:1 char:26
+ function Return-FileHash {
+                          ~
Missing closing '}' in statement block or type definition.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline
4

1 に答える 1