chgs2011
Goto Top

Dateien nach "Text" durchsuchen und Pfad ausgeben

Hallo,

ich suche dringend ein kleines VBScript.

Das Script soll einen bestimmt Text in Dateien suchen, den der Benutzer per Eingabefeld angibt.
Zudem soll der Benutzer angeben, in welchem Pfad die Suche stattfinden soll.
(Schön wäre es, wenn man dazu ein CommonDialog verwenden könnte, Beispiel unten aber falsch!)

Das Script soll dann ALLE Dateien nach diesem Suchstring durchsuchen, in dem angegebenen Ordner + Unterordner.

Das Ergebnis soll dann den Pfad + Dateinamen liefern, bestenfalls als Liste zum markieren & kopieren, notfalls als TXT-File.


Dim Pfadangabe
Dim Suchbegriff 

Pfadangabe= InputBox("Bitte Verzeichnis für Suche angeben:", "Verzeichnis für Suche", "C:\TEMP")   
Suchbegriff = InputBox("Bitte Suchbegriff eingeben:", "Suchbegriff eingeben", "mein Suchbegriff ")   

Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "VBScript Scripts|*.vbs|All Files|*.*" 'Filter einstellen  
objDialog.Flags = &H0200 'Multi Select Flag  
objDialog.FilterIndex = 1 'der erste Filter wird als erstes angezeigt  
objDialog.InitialDir = "C:\Scripts" 'startfolder zum browsen  
intResult = objDialog.ShowOpen 'den dialog öffnen  


found = false
If found = true Then
	... Suchergebnisse ...
Else
	MsgBox "Suchbegriff wurde nicht gefunden!"  
End If


Vielen Dank vorab"

Content-Key: 302247

Url: https://administrator.de/contentid/302247

Printed on: April 23, 2024 at 16:04 o'clock

Member: MrCount
MrCount Apr 19, 2016 at 10:54:32 (UTC)
Goto Top
Hi,

wieso per VBScript und nicht mit dem Suchfeld im Dateiexplorer??
Mitglied: 114757
114757 Apr 19, 2016 updated at 11:00:30 (UTC)
Goto Top
Powershell Einzeiler:
select-string (read-host "Pfad und FIlter eingeben") -Pattern (read-host "Suchbegriff eingeben") -SimpleMatch  
Fertsch.

Zu VBS haben wir dazu doch schon hunderte Einträge ...z.B.
Mithilfe eines Makros mehrere Excel-Datein nach einem Begriff durchsuchen und Daten kopieren

Gruß jodel32
Member: chgs2011
chgs2011 Apr 19, 2016 at 11:04:36 (UTC)
Goto Top
Weil das nicht funktioniert!
Member: chgs2011
chgs2011 Apr 19, 2016 at 11:06:21 (UTC)
Goto Top
Danke für den Link, aber das passt iwie nicht zudem was ich will.

PowerShell?
Ist bei uns nicht erlaubt, benötige daher VBS!
Member: MrCount
MrCount Apr 19, 2016 at 11:09:20 (UTC)
Goto Top
Dann hast du es scheinbar nicht wirklich probiert...

2016-04-19 13_08_03-ordneroptionen

(Screenshot aus den Ordneroptionen für Windows 10)
Mitglied: 114757
114757 Apr 19, 2016 updated at 11:20:51 (UTC)
Goto Top
Zitat von @chgs2011:

Danke für den Link, aber das passt iwie nicht zudem was ich will.

Naja simple For-Schleife die jedes File öffnet und darin mit InStr sucht (zur Rekursiven Suche in allen Unterordnern siehe weiter unten ....)
Set fso = CreateObject("Scripting.FileSystemObject")   
for each file in fso.GetFolder("C:\Ordner").Files  
   if LCase(fso.GetExtensionName(file.Name)) = "txt" then  
      if Instr(1,fso.OpenTextFile(file.Path,1).ReadAll(),"SUCHBEGRIFF",1) > 0 then  
          Msgbox "Suchbegriff gefunden in:" & file.Path  
     end if
   End if
Next
Das kannst du von mir aus ausschmücken wie du willst. Einen Folder-Browser-Dialog bekommst du z.B. hiermit
Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder(0,"Ordner wählen",0)  
If Not objFolder Is Nothing Then
	If objFolder.Self.Path <> "" Then  
		MsgBox objFolder.Self.Path
	End If
End If
Zur rekursiven Suche von Dateien in Ordnern + Unterordnern gibts hier auch schon etliche Threads wie man das mit einer Rekrusiven Funktion macht ...
Datei auf Festplatte per VBA suchen und löschen ( access 2010)

Also alles schon da gewesen ... Damit hast du das Handwerkszeug es dir zusammen zu stellen. Wenn wir dir hier jetzt was fertiges vorbeten lernst du ja nichts daraus.

Gruß jodel32
Member: chgs2011
chgs2011 Apr 19, 2016 at 11:36:07 (UTC)
Goto Top
Ich suche nicht umsonst nach einer VBS Lösung face-smile
Member: chgs2011
chgs2011 Apr 19, 2016 at 11:37:12 (UTC)
Goto Top
Danke dir für die Schnippel, dann muss ich noch bissel basteln. face-confused
Member: chgs2011
chgs2011 Apr 19, 2016 at 12:01:50 (UTC)
Goto Top
Habe es nun so, aber Pfad und Suchbegriff wird nicht übergeben?!

Dim objShell
Dim objFolder
Dim Suchbegriff

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder(0,"Ordner wählen",0)  

Suchbegriff = InputBox("Bitte Suchbegriff eingeben:", "Suchbegriff eingeben", "00000000")   

Set fso = CreateObject("Scripting.FileSystemObject")   
for each file in fso.GetFolder(objFolder).Files
      if Instr(1,fso.OpenTextFile(file.Path,1).ReadAll(),Suchbegriff,1) > 0 then
          Msgbox "Suchbegriff gefunden in:" & file.Path  
     end if
Next
Mitglied: 114757
114757 Apr 19, 2016 updated at 12:06:36 (UTC)
Goto Top
Zitat von @chgs2011:
Habe es nun so, aber Pfad und Suchbegriff wird nicht übergeben?!
Wenn man nur die Hälfte des Codes von oben übernimmt und das wichtigste davon weglässt, kein Wunder...

Was hast du von
objFolder.Self.Path
nicht verstanden? Und die IF-Abfragen wegzulassen ist auch nicht gerade klug, führt es doch zu einer Exception wenn der User auf Abbrechen im Dialog klickt ...
Member: MrCount
MrCount Apr 19, 2016 at 12:06:33 (UTC)
Goto Top
Falls dir eine Batch-Lösung in den Kram passt:

@echo off

:start
SET /P "searchfor=Wonach soll gesucht werden? "   
SET /P "location=Wo soll gesucht werden? (Bsp.: C:\tmp\) "  
SET /P "output=Speicherort für Ergebnis? (Bsp.: C:\tmp\ergebnis.txt) "  
SET /P "files=Welchen Dateitypen? (Bsp.: *.txt oder *.*) "  
SET "search=%location%%files%"  

:rek
SET /P "rekursiv=Soll rekursiv gesucht werden? (j/n) "  

:conf
echo.
echo Suche nach:  %searchfor%
echo Suche in:    %location%
echo Dateien:     %files%
echo Ausgabe in:  %output%
echo Rekursiv:    %rekursiv%
echo.

>%output% (
echo Suche nach:  %searchfor%
echo Suche in:    %location%
echo Dateien:     %files%
echo Ausgabe in:  %output%
echo Rekursiv:    %rekursiv%
echo.
)

if "%rekursiv%"=="j" goto rekursiv  
if "%rekursiv%"=="J" goto rekursiv  
if "%rekursiv%"=="n" goto nonrekursiv  
if "%rekursiv%"=="N" goto nonrekursiv  
goto rek

:nonrekursiv
findstr /m "%searchfor%" %search% >>%output%  
goto end

:rekursiv
findstr /s /m "%searchfor%" %search% >>%output%  
goto end

:end
start %output%
Mitglied: 114757
114757 Apr 19, 2016 updated at 12:08:06 (UTC)
Goto Top
Jetzt kommt gleich: "Batch haben sie uns auch deaktiviert face-big-smile" Wohl ein Azubi der hier fertige Skripte abgreifen will face-wink
Member: MrCount
MrCount Apr 19, 2016 at 12:10:25 (UTC)
Goto Top
Na, Azubi glaub ich nicht, ist ja schon seit 2014 hier drin... face-wink
Nutzergruppe "Enduser".
Mitglied: 114757
114757 Apr 19, 2016 updated at 12:14:32 (UTC)
Goto Top
Och, ich hatte zu meiner Azubi-Zeit auch einen Russen mit 60 Jahren auf dem Buckel in der Berufsschule ... man lernt ja nie aus face-wink
Member: Biber
Biber Apr 19, 2016 updated at 13:47:23 (UTC)
Goto Top
[OT]
Menno.....

Zitat von @114757:

Och, ich hatte zu meiner Azubi-Zeit auch einen Russen mit 60 Jahren auf dem Buckel in der Berufsschule ... man lernt ja nie aus face-wink
Und ich hatte auch vor 60 Jahren einen Russen mit einem Buckel bei mir in der Berufsschule...

Ich sach' ja nich', dass ihr diese hilfreichen und liebenswerten Randbemerkungen unterdrücken oder gar hinunterschlucken sollt...

Aber macht sie doch bitte mit [OT]-Tags kenntlich.
Gerade Frischlinge können dann besser damit umgehen. Auch die über 60.

Danke euch
Biber
[/OT]
Member: MrCount
MrCount Apr 19, 2016 at 13:51:10 (UTC)
Goto Top
[OT]
Okay face-smile
[/OT]
Mitglied: 114757
114757 Apr 19, 2016 updated at 14:01:15 (UTC)
Goto Top
[OT]
Biber hat mal wieder zu viel Single Malt intus face-wink und das mitten am Tag , tse, tse, tse ...
[/OT]
Member: Biber
Biber Apr 19, 2016 at 14:05:06 (UTC)
Goto Top
[reOT]

Zitat von @114757:

[OT]
Biber hat mal wieder zu viel Single Malt intus face-wink und das mitten am Tag , tse, tse, tse ...
[/OT]
2 cl Ardbeg Dark Cove pro Stunde können keine Sünde sein.
....außer ich muss mal wieder diese Doppelschichten reissen....

Danke euch beiden face-wink
Biber
[/reOT]
Member: chgs2011
chgs2011 Apr 21, 2016 at 13:30:48 (UTC)
Goto Top
Hallo,

Kommentare auf abwertende Posts erspare ich mir, für einen Azubi verdiene ich als Chef viel zu viel Geld.

Fall jemand doch Hilfe anbieten kann (da Programmiersprachen nicht meine Hauptaufgaben beruflich sind), wäre ich dankbar.


Wie erwähnt, möchte ich ein Wurzelverzeichnis inkl. aller Unterverzeichnisse nach Dateien durchsuchen, die einen Text erhalten.
Sollte der Text enthalten sein, soll mir eine Lister aller Daten mit Pfad ausgegeben werden.

Das Script hab ich soweit, allerdings klappt die Suche nicht, sobald ich die harten Parameter ersetzen will.
Die Variablen werden mit Werte gesetzt, was mir die MSGBox auch ausgibt.

Option Explicit

Dim objShell
Dim objFolder
Dim Suchbegriff

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder(0,"Ordner wählen",0)  
Suchbegriff = InputBox("Bitte Suchbegriff eingeben:", "Suchbegriff eingeben", "00000000")   

MsgBox "Verzeichnis:" & objFolder  
MsgBox "Suchbegriff:" & Suchbegriff  

Set fso = CreateObject("Scripting.FileSystemObject")   
for each file in fso.GetFolder(objFolder).Files
   if LCase(fso.GetExtensionName(file.Name)) = "txt" then  
      if Instr(1,fso.OpenTextFile(file.Path,1).ReadAll(),Suchbegriff,1) > 0 then
          Msgbox "Suchbegriff gefunden in:" & file.Path  
     end if
   End if
Next

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder(0,"Ordner wählen",0)  
If Not objFolder Is Nothing Then
	If objFolder.Self.Path <> "" Then  
		MsgBox objFolder.Self.Path
	End If
End If


Ich danke für einen respektvollen Umgang.
Mitglied: 114757
114757 Apr 21, 2016 updated at 13:36:50 (UTC)
Goto Top
für einen Azubi verdiene ich als Chef viel zu viel Geld.
Und sich noch nicht mal davon einen Programmierer leistet sondern in Foren betteln muss face-wink
Member: MrCount
MrCount Apr 21, 2016 at 13:47:35 (UTC)
Goto Top
Also meine Batch-Lösung funktioniert...
Da könnte man ggf. Batch und VBS kombinieren (z.B. wie hier), um über die grafische Oberfläche (objShell.BrowseForFolder) einen Ordner auszuwählen oder auch andere Parameter über VBS zu setzen. face-big-smile
Member: MrCount
MrCount Apr 21, 2016 updated at 13:51:05 (UTC)
Goto Top
[OT]
Zitat von @chgs2011:
Kommentare auf abwertende Posts erspare ich mir

Ich danke für einen respektvollen Umgang.

Die "abwertenden" Posts enthalten möglicherweise ein wenig Sarkasmus... face-wink
[/OT]
Member: chgs2011
chgs2011 Apr 21, 2016 at 14:42:01 (UTC)
Goto Top
@114757

Sorry, mir fehlen die Worte, du musst wohl wirklich sehr weit entfernt von der Geschäftswelt sein.

Geld spielt hier keine Rolle ...
Mitglied: 114757
114757 Apr 21, 2016 updated at 15:29:34 (UTC)
Goto Top
Nö mittendrin ...
Option Explicit

Dim strExtension, fso, objShell, strStartFolder, strSearch, colFiles, objFolder
'========Variablen für Anpassung =======  
' Extension der Dateien die durchsucht werden sollen  
strExtension = "txt"  
'Auch Dateien in Unterordnern bearbeiten  
Const RECURSION = True
'=======================================  
Set fso = CreateObject("Scripting.Filesystemobject")  
Set objShell = CreateObject("Shell.Application")  
Set colFiles = CreateObject("Scripting.Dictionary")  

Set objFolder = objShell.BrowseForFolder(0,"Verzeichnis für die Suche wählen",0)  
If Not objFolder Is Nothing Then
	If objFolder.Self.Path <> "" Then  
		strStartFolder = objFolder.Self.Path
	End If
Else
	WScript.Quit
End If
strSearch = InputBox("Suchbegriff eingeben","Suchbegriff")  

SearchFiles colFiles, fso.GetFolder(strStartFolder), strExtension,strSearch, RECURSION

If colFiles.Count > 0 Then
	' Ausgabe der gefundenen Dateien  
	MsgBox "Folgende Dateien enthalten den Suchhbegriff:" & vbNewLine & vbNewLine & Join(colFiles.Items,vbNewLine),vbInformation  
Else
	MsgBox "Suchbegriff wurde in keiner Datei gefunden",vbExclamation  
End If

'Funktion um in Dateien rekursiv zu suchen  
Function SearchFiles(colFiles , strFldr, strFilter, strSearch, boolRecursion)
    On Error Resume Next
    Dim file,content, subfolder
    For Each file In strFldr.files
        If LCase(fso.GetExtensionName(file.Name)) = strFilter Then
        	content = fso.OpenTextFile(file.Path,1,False,-2).ReadAll()
        	If InStr(1,content,strSearch,1) > 0 Then
            	colFiles.Add file.Path,file.Path
            End If
        End If
    Next
    If boolRecursion Then
        For Each subFolder In strFldr.SubFolders
            SearchFiles colFiles, subFolder, strFilter, strSearch, True
        Next
    End If
End Function
Funktioniert tadellos, und tschüss ....
Member: MrCount
MrCount Apr 22, 2016 at 05:59:57 (UTC)
Goto Top
[OT]
Geld spielt hier keine Rolle ...

@114757
Da fehlt noch deine Kontoverbindung... face-wink
[/OT]
Mitglied: 114757
114757 Apr 22, 2016 updated at 06:04:18 (UTC)
Goto Top
Zitat von @MrCount:
@114757
Da fehlt noch deine Kontoverbindung... face-wink
[/OT]
joa, face-smile, nee von Geld aus dubiosen Quellen lass ich mal lieber die Finger face-wink
Member: chgs2011
chgs2011 Apr 26, 2016 at 07:15:31 (UTC)
Goto Top
Danke für das Script, konnte mich nicht eher melden.

Soweit klappt das Script bei gewöhnlichen TXT Files sehr gut.

Sobald allerdings "Control Character" enthalten sind, findet er diese Files nicht mehr.
Vor allem "SOH" macht hier Probleme.

Bin mir nicht sicher, ob diverse Control Character abgefangen / übergangen werden können?!
Hinzukommt, dass man mehrere Dateiendungen berücksichtigen müsste, wie "*.m01", "*.m02", "*.m03", ...


- STX - Start of Text - First character of message text, and may be used to terminate the message heading.

- SOH - Start of Header - First character of a message header.

- GS - Group Separator - Can be used as delimiters to mark fields of data structures. If used for hierarchical levels, US is the lowest level (dividing plain-text data items), while RS, GS, and FS are of increasing level to divide groups made up of items of the level beneath it.


Ein kurzes Feedback dazu, ob es technisch lösbar ist, wäre klasse ... ansonsten muss ich doch ein Lastenheft erstellen und einen Programmierer beauftragen, habe aber eigentlich keine Zeit für Lastenhefte, Briefings, Projektplanungen, Abnahmen etc.
Mitglied: 114757
114757 Apr 26, 2016 updated at 08:03:52 (UTC)
Goto Top
Ja, alles machbar, wobei ich das persönlich eher mit Powershell machen würde, da lässt sich sowas zu einem Einzeiler zusammenschrumpfen wenn man das wollte und Probleme mit File-Encodings hast du da auch so gut wie keine.

$extensions = @('*.txt','*.m01','*.m02','*.m03')  
Add-Type -AssemblyName Microsoft.VisualBasic
$folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$search = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte Suchstring eingeben")  
if ($folderBrowser.ShowDialog() -ne 0 -or $result -eq ""){  
    [Microsoft.VisualBasic.Interaction]::Msgbox("Nicht alle nötigen Angaben gemacht oder Angaben leer",48,"Abbruch")  
   return
}
$result = gci $folderBrowser.SelectedPath -Include $extensions -recurse | ?{!$_.PSIsContainer -and (gc $_.Fullname) -match [regex]::Escape($search)} | select Fullname,LastWriteTime
if($result){
    $result | ogv
}else{
    [Microsoft.VisualBasic.Interaction]::Msgbox("Keine Dateien mit dem Suchstring: '$search' gefunden!",48,"Kein Ergebnis")  
}
Hast du jetzt immer noch nicht genug musst du Scheinchen abdrücken...

Gruß jodel32
Member: colinardo
colinardo Apr 26, 2016 updated at 09:09:44 (UTC)
Goto Top
Hallo zusammen,
oder man baut sich direkt einen ganzen Dialog mit Powershell dafür zusammen:

Sieht dann z.B. so aus:

screenshot

$showWindowAsync = Add-Type –memberDefinition @” 
[DllImport("user32.dll")]   
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
“@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru

function Hide-PowerShell() { 
    [void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 2) 
}

function GenerateForm {

#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null  
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null  
[reflection.assembly]::loadwithpartialname("Microsoft.VisualBasic") | Out-Null  
#endregion

#region Generated Form Objects
$form_main = New-Object System.Windows.Forms.Form
$txtExtensions = New-Object System.Windows.Forms.TextBox
$label3 = New-Object System.Windows.Forms.Label
$btnSearch = New-Object System.Windows.Forms.Button
$dgv = New-Object System.Windows.Forms.DataGridView
$textBox1 = New-Object System.Windows.Forms.TextBox
$label2 = New-Object System.Windows.Forms.Label
$lblFolder = New-Object System.Windows.Forms.Label
$btnChooseFolder = New-Object System.Windows.Forms.Button
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects

#----------------------------------------------
# Event Script Blocks
#----------------------------------------------
$handler_btnSearch_Click= 
{
    $arrExtensions = $txtExtensions.Text.split(',')  
    $result = gci $lblFolder.Text -Include $arrExtensions -recurse -Force | ?{!$_.PSIsContainer -and (gc  -LiteralPath $_.Fullname) -match [regex]::Escape($textbox1.Text)} | select Fullname,LastWriteTime
    if($result){
        $arrList = New-Object System.Collections.ArrayList
        $arrList.AddRange(@($result))
        $dgv.DataSource = $arrList
    }else{
        $dgv.DataSource = $null
        [Microsoft.VisualBasic.Interaction]::Msgbox("Keine Dateien mit dem Suchstring: '$search' gefunden!",48,"Kein Ergebnis")  
    }
}

$handler_btnChooseFolder_Click= 
{
    $folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
    if ($folderBrowser.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK -and (Test-Path $folderBrowser.SelectedPath)){
        $lblFolder.Text = $folderBrowser.SelectedPath
        $btnSearch.Enabled = $true
    }
}

$handler_dgv_doubleclick = {
    if ($dgv.SelectedRows.Count -ne -1){
        Start-Process $dgv.SelectedRows.Cells.Value
    }
}


$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
	$form_main.WindowState = $InitialFormWindowState
}

#----------------------------------------------
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 253
$System_Drawing_Size.Width = 324
$form_main.ClientSize = $System_Drawing_Size
$form_main.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 281
$System_Drawing_Size.Width = 332
$form_main.MinimumSize = $System_Drawing_Size
$form_main.Name = "form_main"  
$form_main.Text = "Dateien durchsuchen"  

$txtExtensions.Anchor = 13
$txtExtensions.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 89
$System_Drawing_Point.Y = 72
$txtExtensions.Location = $System_Drawing_Point
$txtExtensions.Name = "txtExtensions"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 142
$txtExtensions.Size = $System_Drawing_Size
$txtExtensions.TabIndex = 7
$txtExtensions.Text = '*.txt,*.m01,*.m02,*.m03'  

$form_main.Controls.Add($txtExtensions)

$label3.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 75
$label3.Location = $System_Drawing_Point
$label3.Name = "label3"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 78
$label3.Size = $System_Drawing_Size
$label3.TabIndex = 6
$label3.Text = "Erweiterungen:"  

$form_main.Controls.Add($label3)

$btnSearch.Anchor = 9

$btnSearch.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 237
$System_Drawing_Point.Y = 69
$btnSearch.Location = $System_Drawing_Point
$btnSearch.Name = "btnSearch"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnSearch.Size = $System_Drawing_Size
$btnSearch.TabIndex = 5
$btnSearch.Text = "Suchen"  
$btnSearch.Enabled = $false
$btnSearch.UseVisualStyleBackColor = $True
$btnSearch.add_Click($handler_btnSearch_Click)

$form_main.Controls.Add($btnSearch)

$dgv.Anchor = 15
$dgv.AutoSizeColumnsMode = 16
$dgv.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 101
$dgv.Location = $System_Drawing_Point
$dgv.Name = "dgv"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 140
$System_Drawing_Size.Width = 300
$dgv.Size = $System_Drawing_Size
$dgv.TabIndex = 4
$dgv.ReadOnly = $true
$dgv.MultiSelect = $false
$dgv.SelectionMode = [System.Windows.Forms.DataGridViewSelectionMode]::FullRowSelect
$dgv.add_CellContentDoubleClick($handler_dgv_doubleclick)


$form_main.Controls.Add($dgv)

$textBox1.Anchor = 13
$textBox1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 89
$System_Drawing_Point.Y = 43
$textBox1.Location = $System_Drawing_Point
$textBox1.Name = "textBox1"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 223
$textBox1.Size = $System_Drawing_Size
$textBox1.TabIndex = 3
$textbox1.Text = "Suchbegriff"  

$form_main.Controls.Add($textBox1)

$label2.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 46
$label2.Location = $System_Drawing_Point
$label2.Name = "label2"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 71
$label2.Size = $System_Drawing_Size
$label2.TabIndex = 2
$label2.Text = "Suchbegriff:"  

$form_main.Controls.Add($label2)

$lblFolder.Anchor = 13
$lblFolder.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 124
$System_Drawing_Point.Y = 17
$lblFolder.Location = $System_Drawing_Point
$lblFolder.Name = "lblFolder"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 188
$lblFolder.Size = $System_Drawing_Size
$lblFolder.TabIndex = 1
$lblFolder.Text = ""  
$lblFolder.AutoSize = $true

$form_main.Controls.Add($lblFolder)

$btnChooseFolder.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 12
$btnChooseFolder.Location = $System_Drawing_Point
$btnChooseFolder.Name = "btnChooseFolder"  
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 106
$btnChooseFolder.Size = $System_Drawing_Size
$btnChooseFolder.TabIndex = 0
$btnChooseFolder.Text = "Ordner wählen ..."  
$btnChooseFolder.UseVisualStyleBackColor = $True
$btnChooseFolder.add_Click($handler_btnChooseFolder_Click)

$form_main.Controls.Add($btnChooseFolder)


#Save the initial state of the form
$InitialFormWindowState = $form_main.WindowState
#Init the OnLoad event to correct the initial state of the form
$form_main.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$form_main.ShowDialog()| Out-Null

} #End Function
Hide-Powershell
GenerateForm
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate

Tags: Powershell,Dialog,Dateiinhalt durchsuchen
Member: Biber
Biber Apr 26, 2016 at 09:16:34 (UTC)
Goto Top
[OT]
Moin jobel32, moin colinardo,

geht mich ja nix an, aber wenn doch der TO schreibt...

Zitat von @chgs2011:

Ich suche nicht umsonst nach einer VBS Lösung face-smile
... dann heisst doch "nicht umsonst nach einer VBS Lösung" im Umkehrschluss wohl nicht automatisch "gegen Kohle nach einer PowerShell-Lösung".

Außerdem... ihr müsst doch nicht gleich mit Kanonen auf die Spätzle schiessen oder mit Perlen auf die Säue werfen oder wie das heisst.

Grüße
Biber
[/OT]
Member: colinardo
colinardo Apr 26, 2016 updated at 09:22:36 (UTC)
Goto Top
Hallo Biber.
Zitat von @Biber:
Ich suche nicht umsonst nach einer VBS Lösung face-smile
Uups doch glatt überlesen, Schande über mein Haupt face-smile

Naja, anderen "Chefs" denen nicht vorgeschrieben wird welche Skriptsprache sie zu nutzen haben und die hier vorbeistöbern wird es sicherlich helfen face-wink

Grüße Uwe
Member: chgs2011
chgs2011 Apr 27, 2016 at 07:48:45 (UTC)
Goto Top
Danke für die Erweiterungen, nützen mir/uns allerdings nicht, da PowerShell per GPO nicht erlaubt ist.

Daher bin ich gezwungen auf VBS oder Batch auszuweichen.