从 Get-Random 复制对象

Copy Objects from Get-Random

我想从目录中提取随机图像,所以我使用 Get-ChildItem 和所需的参数来识别所有相关图像,然后将它们写入 CSV 文件。从那里,我导入 CSV 并使用 Get-Random 来提取随机文件。然后我想从 Get-Random 复制图像,但我无法让它工作。

我知道 CSV 是正确的,当我调用 Get-Random 变量时,它看起来是正确的(我相信它是一个哈希表?)。

CSV 内容:

Image                                                                                                              
-----                                                                                                              
\Path\File1.jpg
\Path\File2.jpg
\Path\File3.jpg

用于拉取随机图像并复制过来的脚本:

$a = Import-CSV -Path $path
    $selects = Get-Random -InputObject $a -Count $count
        foreach($b in $selects){
        Copy-Item $destination
        }

当我回显 $selects 时,它会准确地从原始 GCI 中命名随机文件,但我无法弄清楚复制部分。也许是因为它是一个哈希表?我相信 Get-Random 提供 objects 并且我认为对象可以使用 Copy-Item。我脑子里乱糟糟的。

谢谢

您没有将对象传递或通过管道传递给 Copy-Item,您可以简单地执行 $selects | Copy-Item -Destination $destination

我能够通过完全删除 CSV 元素来绕过这个问题。最初 Get-ChilditemAdd-Content 构建了 CSV,我没有这样做,而是将 GCI 直接输送到 Get-Random,然后使用 Copy-Item成功:

$a = GCI $directory | Get-Random -Count $Count $a | Copy-Item -Destination $Destination

感谢大家的意见,它帮助我跳出当前的结构进行思考。