我正在尝试使用Powershell从网络文件夹中获取文件名。我对Get-ChildItems的理解(如果我错了,请纠正我)是cmdlet正在尝试下载整个对象,在这种情况下,它是一系列产品安装程序,大小从每个文件25MB到315MB 。
我的脚本的目的是为用户创建一个菜单,以选择要下载的文件。一切正常,除了填充菜单需要30多分钟,这显然是不可接受的。
我想我可能需要合并一些.NET类来实现这个功能,但是如果我能用纯粹的Powershell做它就会很好。任何想法或建议将不胜感激。
$source = Get-ChildItem "\\networkdrive\Release\Installs\2012.1.2.3\"
答案 0 :(得分:2)
我发现了另一种方法,但它确实使用了.NET类,所以严格来说,它并没有完全回答我自己的问题。但是,它确实完成了工作,所以这里是:
$source = [System.IO.Directory]::GetFiles("\\networkdrive\Release\Installs\2012.1.2.3", "*.exe")
答案 1 :(得分:1)
$source = Get-ChildItem "\\networkdrive\Release\Installs\2012.1.2.3\" | Where-Object{-Not $_.PsIsContainer}
这将只获得文件,但我不认为你可以做很多时间。从理论上讲,您可以在共享所在的服务器上远程运行它。那会更快。不确定这是否是您环境中的一个选项。