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
GELÖST

Datei in Unterordnern ersetzen.

Frage Entwicklung Batch & Shell

Mitglied: Groja2

Groja2 (Level 1) - Jetzt verbinden

21.11.2013 um 14:50 Uhr, 2610 Aufrufe, 6 Kommentare, 3 Danke

Hallo zusammen,

ich versuche mich gerade an einer Batch-Datei um eine Datei in verschiedenen Unterordnern zu ersetzen.
Ich hätte also die Datei "test.xls" und diese möchte ich mit "test2.xls" ersetzen. Die "test.xls" liegt in unterschiedlichen Ordnern (C:\Test\Unterordner1\Unterordner 2\test.xls aber auch in C:\Test\Unterordner3\Unterordner 4\test.xls etc.). Ich habe folgenden Code gefunden:


for /F "delims=;" %f in ('dir /S /B C:\Test\*\test.xls') do copy "C:\datei\test2.xls" "%f" /Y

Leider geht diese Code nicht, bzw. ich bekomme ihn nicht dazu. Kann ich bei "
* " etwas setzen, damit alle Unterordner nach dieser Datei durchsucht werden? Jedoch klappt es im Moment gar nicht. Selbst wenn ich den Pfad absolut hinschreibe:

for /F "delims=;" %f in ('dir /S /B "C:\Test\Unterordner1\Unterordner 2\test.xls"') do copy "C:\datei\test2.xls" "%f" /Y

Ich denke es hängt mit den "" zusammen, aber die brauche ich doch wenn ich ein Leerzeichen im Ordnernamen habe, oder?

Ich hoffe mir kann jemand helfen und ich muss nicht alle 300 Dateien von Hand ersetzen...


Gruß,

Groja2
Mitglied: MrNetman
LÖSUNG 21.11.2013, aktualisiert 17.07.2014
Sag mal, Variable werden aber nicht in Hochkomma gesetzt, nur Pfade mit Leerzeichen. PFade ohen Leerzeichen gehen auch.
Und dann gibt es noch das Sternchen am Anfang der Zeil zwisschen die beiden Tests geklemmt.
Parameter /s beinhaltet Unterverzeichnisse.
Starte im passenden Verzeichnis oder gehe mit einer weiteren Zeile da rein. Sonst passt die Logik nicht.

Gruß
Netman
Bitte warten ..
Mitglied: bastla
21.11.2013 um 15:32 Uhr
Hallo Groja2 und willkommen im Forum!

Für das Ersetzen gäbe es ja den Befehl "replace" ...

Grüße
bastla
Bitte warten ..
Mitglied: Groja2
21.11.2013 um 16:18 Uhr
Hallo MrNetman,
Hallo Bastla,

bin leider neu in der Welt der Batch-Dateien und verstehe es leider noch nicht so gut. Finde leider auch keine gute Website wo es Erklärungen gibt.

@MrNetman: Welche Variable in Hochkomma, %f ? Ok das /S die Unterverzeichnisse beinhaltet wusste ich nicht. Ich habe leider keine Erklärungen gefunden was /F, /S, /B oder /Y heißt... Wie gesagt bin neu auf dem Gebiet und habe versucht etwas gefundenes abzuwandeln...

@bastla: Habe leider keine Website gefunden, welche mir den "replace" Befehl gut erklärt...

Habe es jetzt ein bisschen abgewandelt:

for /F %%f in ('dir /S /B "*test.xls"') do copy C:\datei\test2.xls "%%f" /Y

Geht auch. Nur wenn der Ordnernahme ein Leerzeichen hat geht es leider nicht... Kann ich das irgendwie abfangen?

Gruß,
Groja2
Bitte warten ..
Mitglied: MrNetman
LÖSUNG 21.11.2013, aktualisiert 17.07.2014
Erklärungen gibt es im cmd Fenster:

I:\Daten\>dir /?
Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.

DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]Folge]] [/P] [/Q] [/S] [/T[[:]Zeit]] [/W] [/X] [/4]

[Laufwerk:][Pfad][Dateiname]
Bezeichnet Laufwerk, Verzeichnis und/oder Dateien.

/A Listet Dateien mit angegebenen Attributen auf.
Attribute D Verzeichnisse R Schreibgeschützte Dateien
H Versteckte Dateien A Zu archivierende Dateien
S Systemdateien - vorangestellt kehrt die Bedeutung um
/B Einfaches Format (keine Kopfdaten, keine Zusammenfassung).
/C Zeigt das Tausendertrennzeichen bei Dateigrößen an (Standard-
einstellung). Verwenden Sie /-C, um das Tausendertrennzeichen
nicht anzuzeigen.
/D Gleich wie Breitformat, jedoch nach Spalten sortiert.
/L Verwendet Kleinschreibung.
/N Neues, langes Listenformat (Dateinamen auf der rechten Seite).
/O Gibt die Liste sortiert aus.
Folge N Name (alphabetisch) S Größe (kleinere zuerst)
E Erweiterung (alphabetisch) D Datum/Zeit (ältere zuerst)
G Verzeichnisse zuerst - vorangestellt kehrt die Reihefolge um
/P Pausiert nach jeder vollen Bildschirmseite.
/Q Gibt den Besitzer der Datei aus.
/S Listet Dateien und alle Unterverzeichnisse auf.
/T Bestimmt welche Zeit verwendet wird (nur für NTFS).
Zeit C Erstellung
A Letzter Zugriff
W Letzter Schreibzugriff
/W Verwendet Breitformat für die Auflistung.
/X Zeigt die Kurznamen für Dateien mit Nicht-8Punkt3-Namen an.
Das Format ist das gleiche wie bei /N, wobei der Kurzname vor
dem Langnamen eingefügt wird. Wenn kein Kurzname vorhanden ist,
werden Leerzeichen angezeigt.
/4 Zeigt das Jahr vierstellig an.

Das gibt es für jeden einzelnen Befehl.
copy /?
Bitte warten ..
Mitglied: Groja2
22.11.2013 um 08:23 Uhr
Hallo MrNetman,

vielen Dank für die Infos! Das ein /? Die Hilfe zu einem Befehl öffnet ist gut zu wissen

Ich habe mein Problem jetzt endgültig gelöst:

for /F "delims=;" %%f in ('dir /S /B *test.xls') do copy "C:\datei\test2.xls" "%%f" /Y

Nur wofür steht das "delims=;" ?

Gruß,
Groja2
Bitte warten ..
Mitglied: bastla
LÖSUNG 22.11.2013, aktualisiert 17.07.2014
Hallo Groja2!
Nur wofür steht das "delims=;" ?
Generell zum Thema gäbe es das Tutorial zur FOR-Schleife von @Friemler; konkret für diesen Fall: Eigentlich wäre es "delims=" mit dem Sinn, dass die durch den "dir"-Befehl ausgegebenen Pfade nicht beim ersten auftretenden Leerzeichen abgebrochen werden (Leerzeichen ist, neben TAB, das Standard-Trennzeichen in einer "for /f"-Schleife) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (5)

Frage von freshman2017 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...

Outlook & Mail
Outlook 2010 mit Exchange 2016 (15)

Frage von slansky zum Thema Outlook & Mail ...