2017-08-11 134 views
0

所以我有一個查找特定文件,如下面的過程:簡單的PowerShell腳本失敗

@(Get-ChildItem -Path \\$Server\c$\temp\* where-object { $_.CreationTime.Date -match "2016" }) 

這工作得很好,直到我想嘗試和分裂我的產值可達。我瞭解了「$ OFS =」「」,並想使用它(全局PowerShell變量?)並將其更改爲$ OFS =「`r`n」。

現在,當我運行上面的命令時,一個錯誤:

Get-ChildItem : A positional parameter cannot be found that accepts argument ' $_.CreationTime.Date -match "2016" '.

我試圖用$ OFS =「」重置它,這似乎沒有幫助。我無法弄清楚我已經做了什麼來破壞我的簡單腳本。對不起,這是一個非常小巧的問題,但我一直在尋找這個好幾年,不能拿出答案。我在網上找到的一切似乎都聲明我的powershell命令應該可以工作

回答

3

您的powershell命令無法工作。 GET-ChildItem和地點,對象是不同的cmdlet,嘗試管道(|)。從GET-ChildItem到位置對象輸出

@(Get-ChildItem -Path \\$Server\c$\temp\* | where-object { $_.CreationTime.Date -match "2016" }) 
+4

'$ _ CreationTime.Year -eq 2016'避免轉換爲字符串,使用正則表達式和呃..假陽性匹配的可能性,如果腳本仍然在2016年後運行;) – TessellatingHeckler

+2

@TessellatingHeckler你擊敗了我的評論。 (2016年除外:-) – LotPings