Here I will be posting anything I see any importance to me and things that I found or did and prefer not to forget anymore with some little hope that some of this shit will be any use for someone else.
Friday, March 11, 2016
Thursday, March 3, 2016
PowerBuilder - Find windows where datawindow is used
If You have a listo of datawindows and would like to make a list of windows where each of these datawindows are used, this Power-Shell function might help.
By tweaking it You could search for whatewher You need, but basic concept is below.[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $windowTitles = "windowsTitles.txt" New-Item $windowTitles -type file -force function search ([string]$fullName) { $shortName = [io.path]::GetFileNameWithoutExtension($fullName) $files = gci -include *.srw,*.sru,*.srd -recurse | select-string $shortName | group path | select name $found = 0 if ($files.Count -eq 0) { return 0 } foreach ($file in $files) { $shortName2 = [io.path]::GetFileNameWithoutExtension($file.Name) if ($shortName -eq $shortName2) { continue } $found = $found + 1 Write-Host "Used in: " $shortName2 If ($file.Name.EndsWith(".srw")) { Write-Host "Used in: " $shortName2 " and its a WINDOW!" $titleString = Get-Content $file.Name | select-string -pattern "string title = " if (-not $titleString) { Write-Host "Window has no title" Return 1 } Write-Host "Windows title is:" $titleString $title = $titleString.line.replace("string title = ","") # write title to file Add-Content -Encoding UTF8 $windowTitles $title Return 1 } Else { Return search($file.Name) } } Return $found }
Use it something like this ( is same PS1 file for example ) :
$files = gci -include *.srd -recurse | Where-Object {$_.FullName -like "*\$folder\*"} | select-string '!!!!ADD YOUR REGEX HERE!!!' | group path | select name
Write-Host "Found number of datawindows:"
Write-Host $files.Count
$index = 0
foreach ($file in $files)
{
if (-Not $file.Name) {break}
$dwShortName = [io.path]::GetFileNameWithoutExtension($file.Name)
Write-Host "Searching for: " $dwShortName
$found = search($file.Name)
}
Labels:
Power-Shell,
PowerBuilder,
Programming,
Quick and dirty
Subscribe to:
Posts (Atom)