我有一個PowerShell腳本獲取文件列表並移動符合特定條件的文件。爲什麼即使對象是空的,foreach
循環也會運行?
我會假設如果$我不存在它不會運行。但是,如果$ filePath中沒有結果,爲什麼forEach循環運行一次?我已經解決了我的問題,但我很好奇,我嘗試搜索,但找不到答案。
爲了得到這個工作,我只是檢查確保$ filePath在forEach循環之前存在。
例如,如果($文件路徑){...
$filePath = Get-ChildItem -Path $sourceDir | Where-Object {! $_.PSIsContainer -AND ($_.Name -Match "^XXX_XXX*" -OR $_.Name -Match "^YYY_XX*")}
ForEach($i in $filePath){
$sfName = $i.Name
$sfDir = $i.Directory
$tFileName = testFile $destDir $sfName
$sFile = $sourceDir + $sfName
$tFile = $destDir + $tFileName
moveFile $sFile $tFile
謝謝。我通常通常使用powershell v3,但我正在爲一些較老的服務器編寫腳本,這些功能不想升級。這是我肯定已經回答了一千次的一件事,但在搜索中難以量化 – Bagger 2015-04-04 20:19:28