Da hast du recht.
Das PowerShell script ist wirklich genau das, was ich mir vorgestellt habe!
Einziges Problem: .NET Framework ist nicht auf jedem Rechner installiert.
Dies wird für Powershell aber leider für die Bibliotheken benötigt...
(Gesamtpaket: ca. 100-300MB)
Nun habe ich angefangen das ganze in AutoIt zu tackern...
Leider ist da noch der Wurm drin...
Das script gibt schon etwas aus, doch der kommt aus der "WORKDIR" nicht raus.
dieses Verzeichnis ist identisch mit %HOMEPATH% .... Hat vielleicht jemand
Erfahrung mit AutoIT?
CheckFolder.exe sollte das kleine im kompiliertem Zustand Tool heißen ...
-----------------------------------------------------------
;Funktonen zur Abreit mit Arrays
#include <Array.au3>
;In dieses Array werden alle Dateien des zu durchsuchenden Ordners gespeichert
Dim $Source[1]
;Parameter aus CommandLine auswerten
if $CmdLine[0] = 2 Then
$src = $CmdLine[1]
$filename = $CmdLine[2]
Else
;Fehlerbehandlung, falls zu wenige/viele Parameter übergeben worden sind
$src = @WorkingDir
$filename = $src & "\Error.Log"
$file = FileOpen($filename, 2)
if $file = -1 Then
Exit
EndIf
FileWriteLine($file, "Bitte geben Sie alle notwendigen Parameter an: CheckFolder.exe <Suchpfad> <Ausgabedatei>")
FileClose($file)
Exit
EndIf
;Suchstring definieren
FileChangeDir($src)
MsgBox(0, "WorkingDir", @WorkingDir)
$search = FileFindFirstFile("*.*")
;Suchergebnis abfragen
If $search = -1 Then
Exit
EndIf
MsgBox(0, "Src", $src)
;Suchergebnis zur Weiterverarbeitung in Array einlesen
While 1
$filen = FileFindNextFile($search)
if @error Then ExitLoop
_ArrayAdd($Source, $filen)
WEnd
;Array durchlaufen und Verzeichniszugriff prüfen
;Ausgabedatei öffnen und erstellen
$file2 = FileOpen($filename, 2)
;Prüfen, ob Datei erstellt werden konnte
if $file2 = -1 Then
Exit
EndIf
FOR $element IN $Source
If $element <> "" Then
FileChangeDir ($src)
If StringInStr(FileGetAttrib($element), "D") <> 0 Then
FileChangeDir ($src)
FileChangeDir ($src & "\" & $element)
if @WorkingDir <> $src Then
FileWriteLine($file2, $src & "\" & $element)
EndIf
EndIf
EndIf
NEXT
fileClose($file2)
-------------------------------------------------------------
@blubb: Was Schleifen sind, wie ein Programm funktioniert, ist mir soweit klar.
Hab nur leider Probleme mit der Syntax... vor allem C++ / VBA