我有一些代碼有時有效,其他代碼沒有。當它失敗時,我看不到任何錯誤,所以我堅持爲什麼它是間歇性的。選擇字符串問題間歇性地工作
我正在使用Select-String cmdlet,它將查找許多匹配,這是我想要的。
我也使用與我的測試相同的文本文件,所以它不是搜索的數據正在改變。
$Hospinput.Text
是輸入的項目進行搜索。
搜索文件的內容是:
Windows 7 Clinical Complete Nursing A3S
Windows 7 Clinical Complete Nursing A3S Wireless
Windows 7 Clinical Complete Nursing A4N
Windows 7 Clinical Complete Nursing A4N Wireless
Windows 7 Clinical Complete Nursing A4S
Windows 7 Clinical Complete Nursing A4S Wireless
Windows 7 Clinical Complete Observation
Windows 7 Clinical Complete Observation Wireless
SPU Fastpass
SPU Fastpass Wireless
24-7 - Windows 7 Pro x86
Admitting General - Windows 7 x86 - v1.7
通過輸入贏在搜索框中會顯示這個..任何與它「雙贏」。
Windows 7 Clinical Complete Nursing A3S
Windows 7 Clinical Complete Nursing A3S Wireless
Windows 7 Clinical Complete Nursing A4N
Windows 7 Clinical Complete Nursing A4N Wireless
Windows 7 Clinical Complete Nursing A4S
Windows 7 Clinical Complete Nursing A4S Wireless
Windows 7 Clinical Complete Observation
Windows 7 Clinical Complete Observation Wireless
24-7 - Windows 7 Pro x86
Admitting General - Windows 7 x86 - v1.7
..這行上面沒有代碼只有文本文件的內容以及搜索win後應該顯示什麼。
$list = (Select-String -AllMatches -Path "x:\Scripts\PowerShell\HospDepartments.txt" -pattern $HospInput.Text | Select line | ft -HideTableHeaders | Out-String).Trim()
$separator = "`n`r"
$Array = @($list.split($separator, [System.StringSplitOptions]::RemoveEmptyEntries))
$Array.Length
If ($list)
{
$Array.trim()
$Array | foreach{$textbox1.Items.Add($_) }
}Else
{
$TextBox1.Text = "Error in finding $($hospInput.Text)"
}
上面的代碼是一種形式的一部分。它將搜索文本文件並根據輸入進行匹配。這很好。但只是有時候。要在表單中顯示結果,請點擊搜索按鈕。這是當我點擊搜索有時會顯示結果。有時它不會。而且我每次測試都沒有什麼不同。
任何人都可以擺脫任何光線?
爲此,它會間歇性地
HI馬丁剛剛進入更多的代碼。我只是每次都在搜索框中輸入「贏」。我現在會嘗試擴展選項.. – LDStewart
我看到了您的編輯並編輯了我的答案(只是重構了它)。你可以試試看。 –
這似乎是工作非常感謝...然而,由於某種原因,不在winpe內。任何想法爲什麼?我在winpe中運行powershell v4,代碼編譯爲版本4 ...(x:\)是winpe RAM驅動器 – LDStewart