Spanplatte Geschrieben 3. Mai 2009 Teilen Geschrieben 3. Mai 2009 Hallo, ich bin neu hier und vielleicht kann mir jemand helfen. Ich hoffe ich bin bei "Windows Betriebssysteme" richtig mit meinem Anliegen. Ich habe mich in letzter Zeit vermehrt mit Batch-Dateien und deren Progmmierung beschäftigt. Kleinere Aktionen sind auch kein Problem. Mein Hauptanliegen konnte ich aber leider noch nicht lösen. Ich habe auf meiner Festplatte einen Hauptordner mit sehr vielen Unterordnern (~600). Ungefähr so: D:\Hauptordner\44 unwichtige Dinge D:\Hauptordner\Am Anfang war das A D:\Hauptordner\Bestimmt Sogar D:\Hauptordner\Chromosom XY ... D:\Hauptordner\Xylophon lernen leicht gemacht D:\Hauptordner\Zum Schluss das Z Jeder dieser Unterordner hat eine Datei namens Inhalt.txt. Diese würde ich nun innerhalb des selben Orners kopieren. Also Inhalt.txt kopieren zu InhaltNEU.txt. Für einen Ordner ist das ja kein Problem. Allerdings weiß ich nicht, wie ich eine Schleife schreibe, die mir in jeden Ordner reinspringt, dann kopiert, dann wieder raus und so weiter. Geht das überhaupt mit einer Batch? Oder sonst irgendein Vorschlag? Vielen Dank für eure Hilfe im Vorraus! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kazuya Geschrieben 3. Mai 2009 Teilen Geschrieben 3. Mai 2009 Ich habe hier ein kleines VBS-Skript für Dich. Da musst du die Datei die kopiert werden soll an einem bestimmten Pfad abgelegt werden. und dann musst du noch die Pfade ändern aber das sollte kein Problem sein denke ich. Wie gesagt, Skript kurz anpassen und ausprobieren dim fs, baseFolder, oFolder dim sDateiname sQuellPfad="c:\" sDateiname="Test.exe" sZielPfad="D:\kunden\" Set fs = CreateObject("Scripting.FileSystemObject") if fs.FileExists(sQuellPfad + "\" +sDateiname)=true then set baseFolder = fs.GetFolder(sZielPfad) for each oFolder in baseFolder.SubFolders if fs.FolderExists( oFolder.Path + "\dsas\bin\" ) = true then fs.CopyFile sQuellPfad+"\"+sDateiname, oFolder.Path + "\dsas\bin\"+sDateiname, true else msgbox "Datei existiert nicht! Pfad:"+oFolder.Path + "\dsas\bin\"+sDateiname end if if fs.FolderExists( oFolder.Path + "\dsas\lohn\bin\" ) = true then fs.CopyFile sQuellPfad+"\"+sDateiname, oFolder.Path + "\dsas\lohn\bin\"+sDateiname, true else msgbox "Datei existiert nicht! Pfad:"+oFolder.Path + "\dsas\lohn\bin\"+sDateiname end if Next else msgbox "Ursprung-Datei existiert nicht!" end if msgbox "Fertig!", vbOKonly[/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spanplatte Geschrieben 3. Mai 2009 Autor Teilen Geschrieben 3. Mai 2009 Hallo Kazuya, Vielen Dank für die schnelle Antwort und dein Skript! Ich bin eben erst zum Testen gekommen. Kurzum: In VBS kenne ich mich so gut wie gar nicht aus (bin auch kein Informatiker). So wie ich das lese, brauche ich aber eine Datei "Test.exe" die im Hauptordner liegt, oder? Das wäre dann nicht das, was ich suche. Ich hab in jedem Unterordner eine eigene Datei "Test.exe" die jedesmal einen anderen Inhalt hat. Diese soll in dem Unterordner verbleiben und dazu dann die 'neue', kopierte "Test2.exe" im selben Unterordner. Und dass dann für jeden weiteren Unterordner auch. (Klingt ein wenig unsinnig, ich weiß.) Kann ich das mit deinem bereitgestellten Skript bewerkstelligen? Falls ja stell ich mich wohl zu doof an und muss mich mehr in die Materie einlesen. Falls nicht? Andere Idee? Weiterhin DANKE für jede Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kazuya Geschrieben 3. Mai 2009 Teilen Geschrieben 3. Mai 2009 Achso Ok, wenn jedesmal ein anderer Inhalt in der Datei ist ist das nicht das Richtige. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spanplatte Geschrieben 3. Mai 2009 Autor Teilen Geschrieben 3. Mai 2009 Alles klar. Bin derzeit noch auf der Suche nach einer Lösung. Genaugenommen will ich die Datei quasi duplizieren und gleichzeitig umbenennen. Trotzdem Danke für deine Hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spanplatte Geschrieben 4. Mai 2009 Autor Teilen Geschrieben 4. Mai 2009 Okay. Hartnäckigkeit zahlt sich manchmal doch aus. Dein Skript hat mich auf den richtigen Weg geführt. Hier die Lösung: dim fs, baseFolder, oFolder dim sDateiname, sZielPfad sDateiname="Inhalt.txt" sZielPfad="D:\Hauptordner\" Set fs = CreateObject("Scripting.FileSystemObject") set baseFolder = fs.GetFolder(sZielPfad) for each oFolder in baseFolder.SubFolders if fs.FileExists(oFolder.Path+"\Inhalt.txt") = true then fs.CopyFile oFolder.Path+"\"+sDateiname, oFolder.Path+"\"+"InhaltNEU.txt", true else msgbox "Datei existiert nicht! Pfad:" + oFolder.Path + "\Inhalt.txt" end if Next msgbox "Fertig!" [/PHP] [font=Tahoma]Die drei Stunden haben sich gelohnt, jetzt habe ich eine ungefähre Vorstellung wie VBS-Skripte funktionieren und kann mir da noch ein paar Sachen einbauen, die ich ebenfalls gebrauchen könnte! Viele Grüße![/font] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.