2

Powershellを使用してネットワークフォルダーからファイル名を取得しようとしています。Get-ChildItemsについての私の理解(これが間違っている場合は訂正してください)は、コマンドレットがオブジェクト全体をダウンロードしようとしていることです。この場合は、ファイルあたり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 に答える