2017-01-29 42 views
-1

我需要一點幫助,以增加隨機性的隨機性,因此不經常重複。獲取隨機增加隨機性幫助Powershell

我一直用這個使用PowerShell:

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

我的應用程序是有在早上6點中隨機選取多個文件夾1個文件並播放他們整天,直到午夜在家裏虛擬電視頻道,斷電並啓動,每天重複這個過程。我發現的問題是,無論get-random命令使用哪種方式都傾向於經常選擇完全相同的文件。因此,在經過幾個月的劇本運行之後,我看到了日復一日選擇的完全相同的電影,以及從未選擇過的電影。我在猜測,因爲隨機選擇使用時鐘作爲選擇數字的因素?

有沒有辦法在本例中增加獲取更多文件選擇的可能性,而不是重複選擇相同的.mpg文件?

我的另一個選擇是找到一個腳本,用於跟蹤所選的.mpg文件並對它們進行「標記」,或按訪問日期排序,而不是播放兩次相同的文件,直到播放完特定文件夾的所有文件一旦;然後「取消標記」所有文件並重新開始。對我來說,這聽起來像高級腳本,我只是沒有知識來自己採購。

任何深入瞭解我的困境將深受讚賞。有關我的具體情況的任何問題都可以幫助您確定此查詢的結論。

**也許我想知道如何增加隨機分佈?我正在尋找一種方法,讓日復一日地選擇更多的文件,並減少重複次數。

+0

多少MPG文件都在選擇之中? –

+0

如果你對隨機數的選擇有影響,你**正在減少**隨機數。 – LotPings

+0

每個文件夾包含50-100個mpgs。有一些似乎每天都會重複一次,或者每週重複幾次,有些則幾個月內從未玩過。從我可以告訴。 – 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」更新被禁用。 – PetSerAl

+0

哪個操作系統?我使用w10,它默認爲 – 4c74356b41

+0

'fsutil行爲查詢DisableLastAccess'爲你打印'DisableLastAccess = 0'嗎? – PetSerAl