2

我正在尝试使用 Powershell 从网络文件夹中获取文件名。我对 Get-ChildItems 的理解(如果我错了,请纠正我)是 cmdlet 正在尝试下载整个对象,在这种情况下,它是一系列产品安装程序,每个文件的大小从 25MB 到 315MB .

我的脚本的目的是创建一个菜单供用户选择他们想要下载的文件。一切正常,除了填充菜单需要 30 多分钟,这显然是不可接受的。

我想我可能需要合并一些 .NET 类来完成这项工作,但如果我可以纯粹使用 Powershell 来完成它,那就太好了。任何想法或建议将不胜感激。

$source = Get-ChildItem "\\networkdrive\Release\Installs\2012.1.2.3\"
4

2 回答 2

3

我找到了另一种方法来做到这一点,但它确实使用 .NET 类,所以严格来说,它并不能完全回答我自己的问题。但是,它确实完成了工作,所以这里是:

$source = [System.IO.Directory]::GetFiles("\\networkdrive\Release\Installs\2012.1.2.3", "*.exe")
于 2012-06-05T13:18:46.660 回答
1
$source = Get-ChildItem "\\networkdrive\Release\Installs\2012.1.2.3\" | Where-Object{-Not $_.PsIsContainer}

这只会得到文件,但我认为你可以做很多事情来处理它所花费的时间。理论上,您可以在共享所在的服务器上远程运行它。那会更快。不确定这是否是您环境中的一个选项。

于 2012-06-04T17:16:14.623 回答