2014-10-09 28 views
0

我已經創建了一個PowerShell工作室應用程序,一個用於PowerShell語法的GUI工具仍然適用。我需要搜索文件夾中的文件過濾器「DeploymentConfig_custom」,它工作正常。我現在需要設置if語句,如果在文件夾中找到該文件,則將複選框設置爲$ true。Powershell Studio Get-ChildItem -Path -filter並執行操作

我嘗試

$deploymentcheck.Checked = $false 

[string]$deployment = Get-ChildItem -Path $Pkgpathmain.Text -Filter "*DeploymentConfig_custom*" 


if ($deployment -contains "*DeploymentConfig_custom*") 
{ 
    $deploymentcheck.Checked = $true  
} 
+0

- 包含工作適用於數組和你轉換的結果字符串。將測試,但在這種情況下確實匹配工作'$ deployment -match「DeploymentConfig_custom」' – Matt 2014-10-09 13:50:31

回答

1
[string]$deployment = Get-ChildItem -Path $Pkgpathmain.Text -Filter "*DeploymentConfig_custom*" 

該代碼會返回一個字符串,用一個空格delimeted的所有文件名。您對該字符串使用-Contains-Contains查找數組元素,並且在這種情況下總是會失敗,因爲$deployment是單個字符串而不是數組。你應該嘗試使用

if ($deployment -match "DeploymentConfig_custom") 

-Match支持正則表達式的-match-like

if ($deployment -like "*DeploymentConfig_custom*") 

這樣你就不需要在你的情況下使用任何*的。

這應該在你的PowerShell工作室應用

+0

謝謝使用類似的作品完美。 – Zen 2014-10-13 12:47:21