2017-01-29 6 views
-1

get-randomのランダム性を高め、そう頻繁に繰り返さないように少し助けが必要です。Get-Random増加したランダム性ヘルプPowershell

私はPowerShellを使用し、これを使用している

$formats = 
@("*.mpg") 
$dir = Split-Path $MyInvocation.MyCommand.Path 
gci "$dir\*" -include $formats | Get-Random -Count 1 | 
Invoke-Item 

私のアプリケーションは、ランダムに6時に複数のフォルダから1つのファイルを選択し、深夜まで一日中、それらを果たしている家庭内の仮想テレビチャンネルを持つことで、電源をオフ毎日そのプロセスを繰り返し、起動します。私が探している問題は、get-randomコマンドが使用するものが何でも同じファイルを頻繁に選ぶ傾向があることです。したがって、このスクリプトを何ヶ月も実行した後、私は毎日厳選されたまったく同じ映画と決して選ばれない映画を見ています。 get-randomは数字を選ぶ要因として時計を使用しているので、私は推測していますか?

この例では.mpgファイルの選択肢が広がり、同じ.mpgが選択された回数が少なくなる可能性が高くなりますか?

私の他の選択肢は、特定のフォルダのすべてのファイルが再生されるまで、.mpgの選択と "マーク"を追跡したり、日付による並べ替えを行ったり、同じファイルを2回再生したりしないスクリプトを見つけることでした一度;すべてのファイルのマークを解除してからやり直してください。私には高度なスクリプティングのように聞こえますが、私は自分自身で調達する知識がありません。

私のジレンマに対する洞察は非常に高く評価されます。このクエリの結論を確かめるために私の詳細について質問があれば、今後の予定です。

**多分ランダム分布を増やす方法を知りたいですか?私は、毎日選択されたファイルでより多様な方法を探しています。

+0

どのように多くのmpgファイルを選択しているチェックするために、かなり簡単なはず? –

+0

乱数の選択に影響を与えると、あなたは**乱数を減らします**。 – LotPings

+0

各フォルダには50〜100 mpgが含まれています。毎日繰り返されるように見えるものもあれば、週に数回しかないものもあり、数ヶ月で決して遊んだことのないものもあります。私が言うことができるから。 – user7486891

答えて

0

(アクセス時間)それはあなたが間

$item = gci "$dir\*" -include $formats | where {$_.lastaccesstime -le (Get-Date).AddDays(-30)} | 
    Get-Random -Count 1 
$item.LastAccessTime = Get-Date 
$item | Invoke-Item 
+1

パフォーマンス上の理由から、デフォルトでは、 'LastAccessTime' update on updateは無効になっています。 – PetSerAl

+0

os?私はw10を使用しており、デフォルトではオンになっています。 – 4c74356b41

+0

'fsutilビヘイビアクエリDisableLastAccess'はあなたに' DisableLastAccess = 0'を出力しますか? – PetSerAl

関連する問題