将变量函数的结果存储在变量

时间:2018-02-14 08:03:42

标签: shell powershell

我的文件位于以下目录中:

first-file-name
2nd-file-name
3rd-file-name
.
.
n-file-name

我需要将文件名的每个部分存储在一个单独的变量中,因为我想在表的不同列中插入这些值。

为此,我使用以下脚本获取文件名的每个部分:

$var1=$item.BaseName.Split("-",3)[0]---------first
$var2=$item.BaseName.Split("-",3)[1]---------file
$var3=$item.BaseName.Split("-",3)[2]---------name

并可以将这些值保存在变量中。但问题是如何为所有文件执行此操作,如果我使用foreach循环,则变量值将覆盖 ???

foreach(item in $items)
{
 $var1=$item.BaseName.Split("-",3)[0]---------first
 $var2=$item.BaseName.Split("-",3)[1]---------file
 $var3=$item.BaseName.Split("-",3)[2]---------name
}

此处,在$items中,我使用get-childitem获得了文件路径。

1 个答案:

答案 0 :(得分:1)

我会创建一个$parts = $items | ForEach-Object { [PsCustomObject]@{ FirstPart = $item.BaseName.Split("-",3)[0] SecondPart = $item.BaseName.Split("-",3)[1] ThirdPart = $item.BaseName.Split("-",3)[2] } } ,其中包含三个部分:

$parts

现在$parts[0].FirstPart是这些对象的数组,因此您可以使用e访问它们。 G。

if(str<10){ System.out.print("\nStr \t"+str+"["+bonusstr+"]"); }else if(str>10){ System.out.print("\nStr \t"+str+"[+"+bonusstr+"]");"