我想使用PowerShell(v.1)僅複製匹配模式的文件。該文件命名規則爲:PowerShell複製項目方法失敗 - 文件夾中的括號
Daily_Reviews[0001-0871].journal
Daily_Reviews[1002-9887].journal
[...]
當我運行它,方法「複製項目」抱怨:
爲cmdlet的動態參數,無法檢索。指定通配符模式無效:Daily_Reviews [0001-0871] .journal
+拷貝項目< < < < $ $的資源文件目的地
的錯誤是由於 「[」 和 「]」 中的文件名稱。當我刪除左右括號時,它按預期工作。但看起來像PowerShell 1沒有-LiteralPath標誌,所以有另一種方法讓Copy-Item在包含括號的文件名的PowerShell 1中工作嗎?
$source = "C:\Users\Tom\"
$destination ="C:\Users\Tom\Processed\"
if(-not(Test-Path $destination)){mkdir $destination | out-null}
ForEach ($sourcefile In $(Get-ChildItem $source | Where-Object { $_.Name -match "Daily_Reviews\[\d\d\d\d-\d\d\d\d\].journal" }))
{
Copy-Item $sourcefile $destination
}
謝謝。我做出了你所建議的改變,並且我從Copy-Item中得到了同樣確切的投訴......奇怪的東西。我想知道它是否是文件名中的括號? - – Slinky 2013-04-10 16:19:43
這是因爲文件名中的「[」和「]」。當我刪除左右括號時,它按預期工作。需要能夠使用括號解析文件 – Slinky 2013-04-10 16:25:31
方括號要求在調用'copy-item'時使用'-literalpath'(總是想知道什麼時候需要)。我修改了我的代碼。 – alroc 2013-04-10 16:40:39