Hallo zusammen,
leider hat die Forum Suche kein passendes oder ähnliches Thema ausgespuckt, vielleicht kann mir jemand von euch weiterhelfen. Ich würde gerne per PowerShel in mehren Ordner mit Unterordner nach bestimmte Dateien suchen und bei Fund in einen anderen Ordner verschieben. Die Haupt Ordner haben immer unterschiedliche Namen, die in den Haupt Ordner befindliche Unterordner haben immer den selben Ordner Namen, die Dateien brauchen nur in den in den Unterordner (Beispiel:Rechnung) gesucht werden.
Beispiel Ordnungsstruktur:
C:\Test\Maxi\Rechnung
C:\Test\Peter\Rechnung
C:\Test\Silvia\Rechnung
C:\Test\Nicole\Rechnung
usw.
Die Dateien, die gesucht- und verschoben werden sollen, sind nicht zu 100% identisch, haben aber alle ein Erkennungsmerkmal (Beispiel: -Abfrage-).
Beispiel Dateien:
Maxi-Abfrage-.doc
Peter-Abfrage-.doc
Silvia-Abfrage-.doc
Nicole-Abfrage-.doc
usw.
Nun noch dazu drei Fragen:
1. ist es möglich das abgefragt wird welcher der Unterordner und welche Datei gesucht werden soll?Beispiel:Abfrage bzw. Meldung: welcher Unterordner soll durchsucht werden?, anschließend welche Datei soll gesucht werden?. Bei der Frage nach den Dateinamen würde das Erkennungsmerkmale festgelegt werfen welches immer mit Bindestrich beginnt und endet. Beispiel: Bei Antwort Abfrage wird nach den Dateinamen .......-Abfrage- gesucht und bei Antwort Test wird nach ......-Test-gesucht.
2. Kann durch eine weitere Abfrage der Ziel Ordner angeben werden?
3. ist ein einfacher Bericht (Erstellung einer .txt oder Excel) über das verschieben der gefundenen Dateien möglich?
Ich hoffe ich habe es verständlich niedergeschrieben und mir kann einer von euch helfen, für mich als totaler PowerShell Laie ist das nicht zu schaffen.
Gruß
knuepel
Ich habe mal versucht es als VBS zu Realisieren, leider klappt es nicht. Vielleicht kann mir jemand dabei helfen.
Verschoben. Beiträge zusammengefügt. ~Thunderbolt
leider hat die Forum Suche kein passendes oder ähnliches Thema ausgespuckt, vielleicht kann mir jemand von euch weiterhelfen. Ich würde gerne per PowerShel in mehren Ordner mit Unterordner nach bestimmte Dateien suchen und bei Fund in einen anderen Ordner verschieben. Die Haupt Ordner haben immer unterschiedliche Namen, die in den Haupt Ordner befindliche Unterordner haben immer den selben Ordner Namen, die Dateien brauchen nur in den in den Unterordner (Beispiel:Rechnung) gesucht werden.
Beispiel Ordnungsstruktur:
C:\Test\Maxi\Rechnung
C:\Test\Peter\Rechnung
C:\Test\Silvia\Rechnung
C:\Test\Nicole\Rechnung
usw.
Die Dateien, die gesucht- und verschoben werden sollen, sind nicht zu 100% identisch, haben aber alle ein Erkennungsmerkmal (Beispiel: -Abfrage-).
Beispiel Dateien:
Maxi-Abfrage-.doc
Peter-Abfrage-.doc
Silvia-Abfrage-.doc
Nicole-Abfrage-.doc
usw.
Nun noch dazu drei Fragen:
1. ist es möglich das abgefragt wird welcher der Unterordner und welche Datei gesucht werden soll?Beispiel:Abfrage bzw. Meldung: welcher Unterordner soll durchsucht werden?, anschließend welche Datei soll gesucht werden?. Bei der Frage nach den Dateinamen würde das Erkennungsmerkmale festgelegt werfen welches immer mit Bindestrich beginnt und endet. Beispiel: Bei Antwort Abfrage wird nach den Dateinamen .......-Abfrage- gesucht und bei Antwort Test wird nach ......-Test-gesucht.
2. Kann durch eine weitere Abfrage der Ziel Ordner angeben werden?
3. ist ein einfacher Bericht (Erstellung einer .txt oder Excel) über das verschieben der gefundenen Dateien möglich?
Ich hoffe ich habe es verständlich niedergeschrieben und mir kann einer von euch helfen, für mich als totaler PowerShell Laie ist das nicht zu schaffen.
Gruß
knuepel
Ich habe mal versucht es als VBS zu Realisieren, leider klappt es nicht. Vielleicht kann mir jemand dabei helfen.
Quellcode
- Const BASEFOLDER = "D:\Users\Desktop\Neuer Ordner"
- Dim arrFoundFiles(),cnt, strFind
- cnt = 0
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objShell = CreateObject("Wscript.Shell")
- Do While cnt = 0
- strFind = InputBox("Bitte zu suchenden Dateinamen eingeben:","Eingabe","Beispiel.pdf")
- If strFind = False Or strFind = "" Then Exit Do
- FindFilesRecursive fso.GetFolder(BASEFOLDER),strFind
- If cnt = 0 Then
- If MsgBox("Die Suche war nicht erfolgreich. Möchten sie die Eingabe wiederholen?",vbYesNo Or vbQuestion) = vbNo Then
- Exit Do
- End If
- Else
- If MsgBox("Die Suche hat folgende Dateien gefunden: " & vbNewLine & vbNewline & Join(arrFoundFiles,vbNewLine) & vbNewLine & vbNewLine & "Möchten sie diese nun verschieben?", vbQuestion Or vbYesNo) = vbYes Then
- For Each file In arrFoundFiles
- Move file
- objFileSystem.MoveFile "D:\Users\Desktop\Test", True
- End If
- End If
- Loop
- Function FindFilesRecursive(objFolder, strSearch)
- if fso.FileExists(objFolder.Path & "\" & strSearch) Then
- ReDim Preserve arrFoundFiles(cnt)
- arrFoundFiles(cnt) = objFolder.Path & "\" & strSearch
- cnt = cnt + 1
- End If
- for each file in objFolder.Files
- If LCase(fso.GetExtensionName(file.Name)) = "lnk" Then
- strTarget = objShell.CreateShortcut(file.Path).TargetPath
- For Each f In Array("Rechnung")
- If fso.FolderExists(strTarget & "\" & f) then
- FindFilesRecursive fso.GetFolder(strTarget & "\" & f),strSearch
- End if
- Next
- End If
- Next
- For Each subfolder In objFolder.SubFolders
- FindFilesRecursive subfolder, strSearch
- Next
- End Function
Verschoben. Beiträge zusammengefügt. ~Thunderbolt
ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „Thunderbolt“ ()