Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Files durch eine Batch ersetzen

Mitglied: ReBeLL09

ReBeLL09 (Level 1) - Jetzt verbinden

03.06.2009, aktualisiert 03:27 Uhr, 3556 Aufrufe, 7 Kommentare

Grundlage:

Ich habe einen Ordner in den sich mehrer unterordner befinden.
In jedem dieser Ordner befindet sich eine datei.
Diese ist in jedem Ordner identisch und trägt auch den gleichen Namen.

Vorhaben:
Nun muss diese eine Datei neu bearbeitet werden.
Ich habe sie also (temporär) auf dem Desktop gespeichert und entsprechend editiert.
(Leider) müssen alle anderen Datein auch aktualisiert werden.
Die Möglichkeit alle Manuell zu kopieren wäre eine Altanative, aber sehr mühselig, da es sich um wirklich einige Unterordner handelt (ü100).

Nun meine Idee:

Ich würde gern eine Batch schreiben, die den Inhalt des Ordners ausliest (auch der Unterordner da es dort auch wieder Unterordner gibt)
und in jeden Ordner die modifizierte Datei kopiert und die alte dementsprechend ersetz.

Der Befehl zum kopieren ist ja "xcopy".

Nun die Frage:

Geht dieses auslesen und kann ich den xcopy-befehl so schreiben, das er die Datei auch in die Unterordner kopiert und ersetz?


Info:

Damit keine fehler durch Pfade entstehen können, habe ich mir eine Speicherung auf meiner Festplatte angelegt.
Die Datei befindet sich nun auf "C:\"
Der Order mit den Unterordnern befindet sich auch auf "C:\"
Ich habe ihn mal Batch gennant ;).

So muss also die Datei von "C:\" in den Ordner und alle Unterordner von "C:\Batch\" kopiert werden.

Hoffe mir kann jemand helfen und vielen Dank schonmal im vorraus.
Mitglied: mexx
03.06.2009 um 06:11 Uhr
Ich empfehle Dir dringend, Dich von den Gedanken das mit Batch zu machen zu entfernen. Die Zukunft der Windows Commando Ebene heißt Powershell. Per Powershell wären das vielleicht max. 10 Zeilen.

1. Rekursive Suche aller Dateien und/oder Unterordner (ein Befehl)
2. Per For-Schleife alle Dateien in den gefundenen Ordnern und Unterordnern ersetzten

Okay, sind 5 Zeilen. Wenn Du Powershell einsetzten willst, helfe ich Dir gerne beim coden.
Bitte warten ..
Mitglied: Biber
03.06.2009 um 09:22 Uhr
Moin ReBeLL09,

willkommen im Forum.
Bei allem Verständnis für pubertäre ReBeLLion:
Wir reden uns hier im Forum mit "Hallo", "Moin" oder "Tach" an und nicht mit "Grundlage".
Und auf "vielen Dank schonmal im vorraus" verzichten wir gerne zugunsten einer Rückmeldung "Hat geklappt" bzw. "hat nichts gebracht".

Zurück zu Deiner Frage.
Wie mexx schon bemerkte, ist die Lösung dieser Aufgabe mit CMD-Mitteln etwas behäbiger und uneleganter.
Deshalb auch nur eine kurze Skizze der Vollständigkeit halber (aus Nostalgiegründen sozusagen)

Dei folgendem Testszenario (Datei Test37.txt ist in einigen von vielen Unterverzeichnissen unterhalb D:\Temp und die "neue" Datei "test37.txt ist auf meinem Desktop)
01.
dir test37.* /b /s 
02.
:\temp\test37.txt 
03.
:\temp\templogs\test37.txt 
04.
:\temp\test\test37.txt 
05.
:\temp\test22\test37.txt 
06.
:\temp\testheute\test37.txt
.... macht das gewünschte folgende Zeile am CMD-Prompt:
01.
for /r "d:\temp" %i in (test37.txt) do @if exist "%i" copy "%userprofile%\desktop\test37.txt" "%~fi"
Falls in ALLEN Unterverzeicnissen diese Datei platziert werden soll (auch wenn noch keine vorher existierte), dann das "If exist "%i" einsparen.

Grüße
Biber
Bitte warten ..
Mitglied: LotPings
03.06.2009 um 10:04 Uhr
Zitat von Biber:
Zurück zu Deiner Frage.
Wie mexx schon bemerkte, ist die Lösung dieser Aufgabe mit CMD-Mitteln etwas behäbiger und uneleganter.

Sorry,
da kann ich nicht folgen,

für genau diesen Fall gibts es schon seit Urzeiten den Befehl Replace,
und bevor ich einen Fünfzeiler in einer objektorientierten Scriptsprache schreibe,
nehme ich doch lieber einen einzigen Befehl.

Es gibt mit Sicherheit Felder in denen PowerShell glänzen kann - hier nicht.

Replace C:\Datei C:\Batch\ /S

Gruß
LotPings
Bitte warten ..
Mitglied: ReBeLL09
04.06.2009 um 13:27 Uhr
Zitat von LotPings:

Replace C:\Datei C:\Batch\ /S

Gruß
LotPings

kann ich mit diesem Befehl die Datei in alle Unterordner kopieren?
würde das gern erst wissen ;)

@ Biber
sry wollte nicht protzig oder so wirken ;)
kenne nur von anderen Forums, das wenn man es so gegliedert schreibt, die verständniss besser ist ;)

Zugegeben, das Hallo, Moin, Tach, Sers, Aloa oder wie auch immer, habe ich irgendwie verschluckt ;) *schande auf mein haupt*
Bitte warten ..
Mitglied: LotPings
04.06.2009 um 14:08 Uhr
Hallo Rebell09,
(so heisst übrigens auch das Computer-Gehäuse meines Sohnes)
ich hasse diese "Sichergeher"

Du hast zwei Möglichkeiten, entweder du glaubst mir, (ob nun beim ersten oder zweiten Mal)
oder du probierst/prüfst es nach, ggfs. mit Testdaten.

Die Hilfe des Befehls steht jedem offen, einfach in einem CMD Fenster

Replace /?

eingeben.

Gruß
LotPings
Bitte warten ..
Mitglied: Biber
04.06.2009 um 19:45 Uhr
Moin ReBeLL09,

*schande auf mein haupt*
Okay, kannst Du wieder abwaschen...

Grundsätzlich hat der Lord natürlich Recht mit den zwei Möglichkeiten, aber weil es hier wirklich unterschiedliche Ergebnisse gibt...

  • die erste meiner FOR/R-Varianten (die mit "IF EXIST") würde 5 Dateien finden und übernageln
  • die zweite Variante ohne IF EXIST würde in knapp 70 Unterverzeichnissen unterhalb des Startverzeichnisses d:\temp eine Kopie abladen
  • Lords Weg mit Replace.exe ersetzt maximal die 5 schon vorhandenen Dateien (optional davon nur die, die älter sind als die neue)
01.
>replace "%userprofile%\desktop\test37.txt" D:\temp /s 
02.
Ersetzen von D:\temp\test37.txt 
03.
Ersetzen von D:\temp\templogs\test37.txt 
04.
Ersetzen von D:\temp\test\test37.txt 
05.
Ersetzen von D:\temp\test22\test37.txt 
06.
Ersetzen von D:\temp\testheute\test37.txt 
07.
5 Datei(en) ersetzt
---> aber Replace.exe bietet keine Möglichkeit, in ALLE Unterverzeichnisse (egal ob Datei vorhanden oder nicht) eine Kopie zu senden.

Wenn die Frage dann hinreichend beantwortet ist Deiner Meinung nach, bitte auf "erledigt" setzen.

Grüße
Biber

P.S. @LotPings
(so heisst übrigens auch das Computer-Gehäuse meines Sohnes)
Dein Sohn gibt seinem Computer Namen??? Na ja...
Meine Töchter haben ihren Plüschtierchen auch Namen gegeben, aber eher sowas wie Fluffi oder Lisa...
Aber ReBeLL09 ist auch eine hübsche Idee...
Bitte warten ..
Mitglied: LotPings
04.06.2009 um 19:58 Uhr
Zitat von Biber:
P.S. @LotPings
> (so heisst übrigens auch das Computer-Gehäuse meines Sohnes)
Dein Sohn gibt seinem Computer Namen??? Na ja...
Nö, das hieß auch vorher schon so.
Rebel

Meine Töchter haben ihren Plüschtierchen auch Namen gegeben, aber eher sowas wie Fluffi oder Lisa...
Aber ReBeLL09 ist auch eine hübsche Idee...

Haha O
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Archivierung und löschen von Files

Frage von PeronasBatch & Shell1 Kommentar

Hallo zusammen, ich habe mal eine Frage zu einem Batch-File welches ich zum archivieren von Files benötige. Und zwar ...

Batch & Shell

Batch File zum Auslesen einer Datei

gelöst Frage von Marcel1989Batch & Shell9 Kommentare

Hallo, Ich scheibe momentan ein Anmeldescript als batch mit dem Aufruf von VBS dateien. Hierfür haben wir bereits gruppen ...

Batch & Shell

Authentifizierung in einem Batch File

gelöst Frage von fiffi1Batch & Shell7 Kommentare

Hallo miteinander, Ich möchte ein script schreiben, das mir alle Netzlaufwerke automatisch einbindet. Ich setzte mich also daran und ...

Windows Netzwerk

Batch File Reboot wenn Offline

gelöst Frage von freenodeWindows Netzwerk9 Kommentare

Hallo Kollegen, ich möchte gerne, dass ein Windows 7 Rechner jede Stunde automatisch schaut, ob er noch im Internet ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 5 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 7 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 7 StundenMicrosoft7 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Server
Route-Befehl Unterstützung (unter CMD)
Frage von FKRR56Server12 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...