2017-02-15 4 views
0

Powershell V4.0を実行しています。以下は、与えられた日付範囲のfilenameの日付スタンプで1000個のファイルを検索し、すべての一致する文字列を検索するスクリプトです。ただし、Get-ChildItemコマンドレットは非常に遅いです。私はPowershellを初めて使う人です。これをより効率的にする方法はありますか?多分バッチで読む?Get-ChildItem - Slow

###################################################### 
#Date ranges and filename 
$startdate = [datetime]'01/26/2017' 
$enddate = [datetime] '02/05/2017' 
$Filename = "DACNBA0124IDT030" 
###################################################### 
#Progress 

###################################################### 


$array = 
do { 
    $startdate.ToString('yyyy_MM_dd*') 
    $startdate = $startdate.AddDays(1) 
    } 

until ($startdate -gt [datetime] $enddate) 

$files = $array | foreach-object {"G:\Live Engineering\AsRuns\Test\$_*"} 

write-host $files 

$Matches = get-childitem $files -recurse -force -OutBuffer 20000 | select- string $Filename | Where -Verbose {$_.line -notlike '*.mxf'} 
$Matches.Matches.Count > "C:\Users\user\Desktop\report app\Log.txt" 
+0

*直接または '-exclude-文字列を選択を探すためにパターンを指定します.MXF 'get-child-itemに直接ファイルがあります。とにかく、あなたが処理するファイルの例、そのサイズ、それがネットワークドライブであるかどうかは分かります。 – wOxxOm

+0

ネットワークに接続されたストレージ上の何十万ものファイルを適度に検索するには、 'cmd/c dir/b/s ... 'に切り替えなければなりませんでした。私のネットワーク上では一桁の速さでした。 –

答えて

0

私は自分の仕事で毎日使うヘルパー機能を持っています。私は私のGitHubレポで利用可能です。

私は同じとよりを行い、それに2つのコマンドレットを持っている...

希望がお手伝いします。

https://github.com/kvprasoon/PSReadScript

問題/バグやリクエストを投稿してお気軽あり

に関して、

Kvprasoon