2014-10-09 1 views
0

PowerShell 구문 응용 프로그램을 만들었으므로 PowerShell 구문에 대한 gui 도구가 실제로 적용됩니다. 파일 필터 "DeploymentConfig_custom"이 제대로 작동하는지 폴더를 검색해야합니다. if 문을 설정하고 폴더에서 해당 파일을 찾으면 체크 상자를 $ true로 설정해야합니다.Powershell Studio Get-ChildItem -Path -filter and do action

내 시도

$deploymentcheck.Checked = $false 

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


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

-Contains가 배열에 적용되고 결과가 string으로 변환되었습니다. 이 경우에는 테스트하지만 일치합니다.'$ deployment -match "DeploymentConfig_custom" – Matt

답변

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

그 코드는 공간 delimeted 모든 파일 이름 문자열을 반환합니다. 해당 문자열에 대해 -Contains을 사용 중입니다. -Contains은 배열 요소를 찾고 $deployment은 배열이 아닌 단일 문자열이므로이 경우 항상 실패합니다. 당신은 당신의 경우에 어떤 * 년대를 사용할 필요가 없습니다 것입니다, 그래서 -match 또는 -like

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

if ($deployment -match "DeploymentConfig_custom") 

-Match 지원 정규 표현식을 사용하려고합니다.

PowerShell 스튜디오 앱에서 작동합니다.

+0

-like works를 사용해 주셔서 감사합니다. – Zen