Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 25.01.2010 um 07:02:19 Uhr
Beitrag verschoben von "Tools & Utilities" nach "Batch & Shell"... scheinen keine (Zusatz-)Utilities erforderlich zu sein.
GELÖST

Automatisiert Dateien aktualisieren

Frage Entwicklung Batch & Shell

Mitglied: Galuwenator

Galuwenator (Level 1) - Jetzt verbinden

18.01.2010, aktualisiert 25.01.2010, 7912 Aufrufe, 14 Kommentare

Dateien aus einem Stapel automatisch auf einem anderen Laufwerk suchen und ersetzen.

Hallo Leute,

ich habe ein einfach klingendes Problem: Ich habe Dateien auf einem Ziellaufwerk verstreut (PDF's und Video's) die regelmäßig aktualisiert werden.

Leider werden diese Dateien zigfach auf dem Laufwerk herumkopiert und das Aktualisieren ist immer eine Pest (sind derzeit ca. 200 Dateien die ich 2x im Monat so suchen und überschreiben muß).

Ich habe mir im Moment ein Batchdatei geschrieben, die die Datei nach Namen auf dem Laufwerk sucht und dann gezielt vom Vorlagelaufwerk überkopiert

Das geht aber leider immer nur File für File und hätte das gerne Automatisiert.

Nun meine Frage: Gibt es ein fertiges Tool, dass alle Files von einem Ausgangspfad nacheinander im Zielfpfad sucht und ersetzt?

Habe da auch langer Recherche nix gefunden.

[Edit Biber] Ich brauche daher Eure Hiiiilfeee !! Bitte diese Floskeln meiden in Zukunft. Danke [/Edit]

Danke Alexander
Mitglied: sputnik
18.01.2010 um 18:00 Uhr
Suchen und ersetzen heißt, ein Spiegelabbild von einer Quelle (mit den aktuellsten Version) erstellen? Wenn ja, schau dir mal robocopy an: http://www.wintotal.de/artikel/artikel-2007/91.html
Bitte warten ..
Mitglied: TheDarkLord
19.01.2010 um 08:28 Uhr
Hallo

Kann man das nicht auch einfach mit xcopy machen, oder hab ich die Fragestellung jetzt falsch verstanden?
Für ein tägliches Aktualisierungsbackup bei mir an der Arbeit nutze ich:

xcopy "C:\Beispielorder\*.*" "D:\Beispielbackupordner\" /sdyhcr
S: Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind
D: Kopiert nur die an oder nach dem Datum geänderten Dateien. Ist kein Datum angegeben, werden nur Dateien kopiert, die neuer als die bestehenden Zieldateien sind.
Y: Unterdrückt die Aufforderung zur Bestätigung, dass eine vorhandene Zieldatei überschrieben werden soll.
H: Kopiert auch Dateien mit den Attributen 'Versteckt' und 'System'.
C: Setzt das Kopieren fort, auch wenn Fehler auftreten.
R: Überschreibt schreibgeschützte Dateien.
Anstatt S kann E verwendet werden, dann werden auch leere Unterverzeichnisse mitkopiert.

Damit werden dann nicht jedes mal alle 23948203482304823 Dateien kopiert, sondern nur noch neu erstellte werden kopiert und veränderte werden aktualisiert, d.h. die vorhandene ältere Version im Backupverzeichnis mit der veränderten neueren überschrieben.

Ist das nicht genau Dein Anliegen?

Gruß Dark


Nachtrag:

Es kann zusätzlich auch noch noch "vo" verwendet werden.
V: Überprüft jede neue Datei auf Korrektheit.
O: Kopiert Informationen über den Besitzer und ACL.

Für denn Fall, das bestimmte Dateitypen nicht kopiert werden sollen, z.B. temp. Dateien, kann man diese ausschließen mit:
/exclude:C:\exclude.txt
In der TXT dann einfach pro Zeile die auszuschließenden Dateiendungen, z.B.
.tmp 
~$ 
.lnk
Die ganze Zeile sähe dann so aus.
xcopy "C:\Beispielorder\*.*" "D:\Beispielbackupordner\" /sdyhcrvo /exclude:C:\exclude.txt
Bitte warten ..
Mitglied: Galuwenator
19.01.2010 um 12:31 Uhr
Hallo Leute,

schon mal Danke für die rasche Hilfe. Mein Problem ist, dass die "Zeildateien" über ein ganzes Laufwerk verstreut sind und sich in anderen Dateien "untermischen". Dass heisst ich habe nicht ein Ausgangs und ein Zielverzeichnis sondern ein Ausgangsverzeichnis und eine ganze Festplattenstruktur auf der das File oftmals liegt.

Geht sowas mit XCOPY?

Um es eindeutiger zu erklären:

Ich würde gerne ein Netzwerklaufwerk durchsuchen nach einer bestimmten Datei. Dann bekomme ich zum Beispiel 12 Suchergebnisse unterschiedlicher Speicherorte. Dann möchte ich diese 12 gefunden Dateien direkt in den Suchergebnissen mit einer neuen gleichlautenden Datei neueren Datums überschreiben.

Heute muss ich jedes dieser Verzeichnisse manuell öffnen und dort die Datei manuell überschreiben.

Was macht FileMonkey? Die Software durchsucht das Ziellaufwerk und speichert die Zielpfade zwischen. Dann wird automatisch ein Batchfile kreiiert, dass für jeden Zielpfad einen Kopiervorgang ausführt. Dann wird die Batchdatei ausgeführt.

Leider geht das wie oben beschrieben nur File für File....

Alexander
Bitte warten ..
Mitglied: Biber
19.01.2010 um 13:44 Uhr
Moin Galuwenator,

auch das könntest mit XCopy erreichen.
XCopy kennt einen Schalter /L, der die relevanten Dateien nur anListet und nicht kopiert.
So würde ein "XCOPY N:\abc.pdf d:\temp /s /L" alle Dateien abc.pdf auf Laufwerk N:\ in allen Unterverzeichnissen auflisten (plus eine Zeile "xxx Dateien kopiert").
Wäre also dasselbe wie das Filemonkey-Resultat.
Und ja, es ginge auch mit "dir N:\abc.pdf /s /b"... aber Xcopy /L ist schneller.

Grüße
Biber
Bitte warten ..
Mitglied: Galuwenator
23.01.2010 um 22:18 Uhr
Hallo,

danke erst mal für die Hilfe.

Frage: Was soll das bringen? Ich will die Datei abc.pdf auf dem Ziellaufwerk austauschen und nicht nur einfach suchen. Das heisst 20mal kopieren.

Wenn ich Deinen Befehl eingebe wird nur ein Suchergebnis kopiert aber nicht die Platte durchsucht *Kopf kratz*

Alexander
Bitte warten ..
Mitglied: Biber
24.01.2010 um 01:03 Uhr
Moin Galuwenator,

ich versuche nochmal eine schrittweise Heranführung an die gemeinte Strategie.

Angenommen, es ginge mir um eine Liste von 100 Dateien, die auf einem QuellLaufwerk/Pfad und/oder einer Liste/Textdatei vorlägen.
Alle diese Quelldateien Q liegen auch irgendwo auf einem Zielverzeichnis Z vor (in irgendwelchen Unterpfaden) und sollen dort ersetzt werden.

Nehmen wir an, eine dieser Dateien, die überall ersetzt werden soll, wäre eine Datei "Readme.txt" und ich wollte die überall in meinem Zielpfad [Beispiel "D:\Temp"] und darunterliegenden Verzeichnissen ersetzen.

Dann wäre mein Vorgehen
Führe für jede Datei Q folgendes durch (erste Datei Q ist wie geschrieben "Readme.txt")
  • finde alle Dateien mit dem Q-Dateinamen "Readme.txt" auf Zielverzeichnis und darunterliegenen Pfaden
Das geht wahlweise mit
> dir readme.txt /b /s 
D:\temp\Bat-beispiele\fABMIN\SPRIS\Scripts\Readme.txt 
D:\temp\Bat-beispiele\fABMIN\SPRIS\TestEnv\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\uni-mainz\moveex\readme.txt 
D:\temp\MBR\README.TXT 
D:\temp\rplfaq97\Readme.txt
-- oder ---
> xcopy d:\temp\readme.txt? f:\just4AList\ /LSD 
D:\temp\Bat-beispiele\fABMIN\SPRIS\Scripts\Readme.txt 
D:\temp\Bat-beispiele\fABMIN\SPRIS\TestEnv\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\uni-mainz\moveex\readme.txt 
D:\temp\MBR\README.TXT 
D:\temp\rplfaq97\Readme.txt 
9 Datei(en) kopiert 
--- bzw mit wegfiltern der nicht benötigten Summenzeile -- 
 
D:\temp> 
> xcopy d:\temp\readme.txt? f:\just4AList\ /LSD|find /v "Datei(en)" 
D:\temp\Bat-beispiele\fABMIN\SPRIS\Scripts\Readme.txt 
D:\temp\Bat-beispiele\fABMIN\SPRIS\TestEnv\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\OS2\Readme.txt 
D:\temp\Bat-beispiele\mp3tool\mp3tool\A1u570a\68\WINNT351\README.TXT 
D:\temp\uni-mainz\moveex\readme.txt 
D:\temp\MBR\README.TXT 
D:\temp\rplfaq97\Readme.txt
Diese Ergebnisliste wiederum kannst du dann als komplette ZIEL-Liste als Input in einer FOR /F-Anweisung verwenden.

Z.B (vom CMD-Prompt aus:
01.
FOR /F "delims=" %i in ('xcopy d:\temp\readme.txt? f:\just4AList\ /LSD^|find /v "Datei(en)"') DO @echo COPY q:\bla\Readme.txt "%i"
Das wäre mein proof-of-concept am CMD-Prompt... wenn es klappen würde, dann sollten dir (gefahrlos als Simulation) alle zusammengebratenen COPY-Befehle angezeigt werden.

In einem Batch dann jeweils zwei Prozentzeichen (%%i statt %i) und wenn es lüpt, ggf. das Wort "Echo" einfach weglassen.

Grüße
Biber
Bitte warten ..
Mitglied: Galuwenator
24.01.2010 um 21:38 Uhr
Ah jetzt hab ichs kapiert...Liste als Input abarbeiten..

Wau werde ich sofort ausprobieren...

Schon mal SUPER THX !!

Alexander
Bitte warten ..
Mitglied: bastla
24.01.2010 um 23:50 Uhr
@Biber
Nur interessehalber: Spräche etwas gegen
replace q:\bla\Readme.txt d:\temp /s /u 
Grüße
bastla
Bitte warten ..
Mitglied: Biber
25.01.2010 um 06:41 Uhr
Moin bastla,

Zitat von bastla:
@Biber
Nur interessehalber: Spräche etwas gegen
replace q:\bla\Readme.txt d:\temp /s /u  
> 
*lach*
Natürlich nicht.... einziger Grund für die Nicht-Nennung von "Replace" war, dass ich diesen Befehl so selten verwende, dass der mir absolut nicht in den Sinn gekommen ist.

@Galuwenator
Also....zieh den optimalen Nutzen aus diesem kleinen Fachgespräch und
  • merk dir für allgemeine Batch-"Datei-Listen-Verarbeitung" die von mir gepostete (und fast immer verwendbare) Herangehensweise
  • studiere für diesen speziellen Fall noch mal die Hilfe ("Replace /? am CMD-Prompt) und verwende dann ggf für deine Anforderung die wesentlich elegantere Lösung von bastla.

Grüße
bastla
Grüße und Dank zurück
Biber
Bitte warten ..
Mitglied: Galuwenator
25.01.2010 um 08:23 Uhr
Hallo Bastla,

vielen Dank.

Damit bin ich wieder am Anfang meines Threads:

Kennt jemand ein kleines Prog, dass den REPLACE Befehl insofern automatisiert, dass ich eine Input-File Liste durch den Replace Befehl abarbeiten kann?

Vielen Dank.

Alexander
Bitte warten ..
Mitglied: Biber
25.01.2010 um 08:40 Uhr
Moin Galuwenator,

auch das wäre wieder ein typischer Anwendungsfall für eine FOR/F-Anweisung...

Wenn du eine Liste "NeueDateien.txt" mit Pfadangaben+Dateinamen vorliegen hast:

01.
FOR /F "delims=" %i in ("D:\einPfad\NeueDateien.txt") do replace "%i" d:\temp /s /u
-oder, wenn alle "neuen" Dateien in einem bestimmten Verzeichnis ("D:\EinPfad") stehen
01.
 FOR /F "delims=" %i in ('dir /b /a-d D:\einPfad\*.*') do replace "D:\EinPfad\%~nxi" d:\temp /s /u
[jeweils wieder die Syntax vom CMD-Prompt; im Batch zwei %-Zeichen statt eines...s.o.]

Grüße
Biber

[Edit] Tippfehlerkorrektur "%~nxi" statt "~%nxi", s.Kommentar unter. [/Edit]
Bitte warten ..
Mitglied: Galuwenator
25.01.2010 um 09:30 Uhr
Wau,

GENAU was ich brauche! Getestet und geht.

Kompiment ans Forum!!

P.S.: Versuch 2 macht genau was ich brauche - habe nur den zweiten Teil einfach gegen "%i" getauscht - ist einfacher

Danke nochmals, Problem solved.

Alexander
Bitte warten ..
Mitglied: Galuwenator
25.01.2010 um 09:41 Uhr
Nein geht doch nicht...das mit dem ersten Teil des Dateipfades und die Variable zusammenhängen funktioniert nicht.

EDIT: Sorry geht doch...*Kopf kratz* mein Rechner hat im DOS-Fenster den Pfad plötzlich nicht mehr gefunden...Neues DOS-Fenster und jetzt geht es..

Alexander
Bitte warten ..
Mitglied: Biber
25.01.2010 um 10:02 Uhr
Moin Galuwenator,

...öhm....das geht/geht nicht könnte unter Umständen an einem Tippfehler in meiner Skizze/Variante 2 liegen...*schäm*

Da habe ich die Reihenfolge von Prozentzeichen und Tilde vertauscht...

FALSCH (berichtige ich oben!): .... do replace "D:\EinPfad\~%nxi"
RICHTIGER: ....do replace "D:\EinPfad\%~nxi"

Sorry
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien automatisiert auf den Desktop von "All Users" kopieren (1)

Frage von Falaffel zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit vorgegebener Größe erstellbar? (3)

Frage von Stefan007 zum Thema Batch & Shell ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Festplatten, SSD, Raid
Reallocated sectors count: Welche Dateien befinden sich in den beschädigten Sektoren? (9)

Frage von DunkleMaterie zum Thema Festplatten, SSD, Raid ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...