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

Ergebnis einer Suche mit dir und find mit copy kopieren

Frage Entwicklung Batch & Shell

Mitglied: 94erBrom

94erBrom (Level 1) - Jetzt verbinden

06.11.2013 um 16:00 Uhr, 1701 Aufrufe, 7 Kommentare

Hallo.
Ich habe hier ein Skript erstellt, dass jeweils die Log-Datei vom Vortag in einen anderen Ordner kopieren soll.
Diese soll dort dann mit dem Datum als Namen liegen.

@echo off & setlocal
set "Ordner=C:\mylogs\"
set "Ziel=F:\Log-Archiv\"
echo WScript.Echo DateAdd("d",-1, date())>%temp%\Gestern.vbs
for /f %%i in ('cscript //nologo %temp%\Gestern.vbs') do set "Gestern=%%i"
del %temp%\Gestern.vbs
echo Gestern: %Gestern%
echo Dateien:
cd %Ordner%
dir content*.log |find "%Gestern%" |copy "%Ordner%" "%Ziel"\%Gestern%.log"

Nun erhalte ich jedoch die Ausgabe, dass das System die Datei nicht finden kann.
Da läuft wohl irgend etwas bei der Pipe zwischen find und copy schief.

Freue mich auf schnelle Hilfe.
LG 94erBrom
Mitglied: Snowman25
06.11.2013 um 16:11 Uhr
Hallo 94erBrom,
Zitat von 94erBrom:
Nun erhalte ich jedoch die Ausgabe, dass das System die Datei nicht finden kann.
Da läuft wohl irgend etwas bei der Pipe zwischen find und copy schief.

Uhm.. ja durchaus. Wie stellst du dir das vor, was da passieren soll? Diese Verkettung hat leider keinen Sinn..

Gruß,
Snowman25
Bitte warten ..
Mitglied: 94erBrom
06.11.2013, aktualisiert um 16:22 Uhr
Die Verkettung dir content*.log |find "%Gestern%" liefert als Ergebnis die Log-Datei vom Vortag, für heute wäre das das Log vom 05.11.2013 mit dem Namen contentThu.log.
Die Verkettung dir content*.log |find "%Gestern%" funktioniert in cmd auch korrekt.
Diese Datei soll nun in den Ordner F:\Log-Archiv unter dem Namen 05.11.2013.log kopiert werden.
Wie bekomme ich das hin?
Per Pipe geht das ja wohl nicht.
Ich nehme mal an, mit einer For-Schleife?
Hilfe!!!
Bitte warten ..
Mitglied: Snowman25
06.11.2013, aktualisiert um 18:06 Uhr
Dein Output nach find wird in etwa so aussehen:
05.11.2013  14:44        18.499.537 contentXYZ.log
Um da jetzt nur den Dateinamen herauszubekommen, brauchst du eine FOR-Schleife:
for /F "tokens=3*" %a IN ('dir content*.log^|find "%Gestern%"') do [...]
Der Dateiname liegt dann in %b.

Im Endeffekt also:
01.
for /F "tokens=3" %a IN ('dir content*.log^|find "%Gestern%"') do copy %b "%Ziel%\%Gestern%.log"
Gruß,
Snowman25

PS: Nicht vergessen! In Batch-Dateien musst du %a und %b mit 2 %% schreiben! Also %%a und %%b.
Bitte warten ..
Mitglied: 94erBrom
08.11.2013 um 08:34 Uhr
Hi.
Zunächst mal danke für die schnelle Hilfe.
Habe die letzte Zeile in der .bat-Datei jetzt in
for /F "tokens=3" %%a IN ('dir content*.log^|find "%Gestern%"') do copy %%b "%Ziel%\%Gestern%.log"
geändert.
Allerdings bekomme ich nun folgende Fehlermeldung:
Gestern: 05.11.2013
Dateien:
Datei nicht gefunden
Habe jedoch, um die alten Dateien von den letzten Versuchen benutzen zu können, das Datum im System auf den 06.11.13 geändert.
Dem entsprechend findet der Befehl
dir content*.log^|find "%Gestern%"
05.11.2013 15:22 10 contentThu.log

Was mache ich noch falsch?
Ich fürchte, dass ich einfach nur eine deiner Anweisungen übersehen oder missinterpretiert habe.

LG 94erBrom
Bitte warten ..
Mitglied: andimue
08.11.2013 um 13:27 Uhr
Hallo zusammen,

wieso macht ihr es euch so schwer: ihr könnt doch statt dem "dir content*.log" einen "dir /b content*.log" machen. Dann bekommt ihr nur die Dateinamen zurück ohne Vorlauf- und Nachlaufinfo und müsst auch nicht umständlich den Dateinamen aus der Zeile rausfisseln.
Aufpassen muss man noch, wenn der Dateinamen Blanks enthält !

Gruß
Andi
Bitte warten ..
Mitglied: 94erBrom
08.11.2013 um 14:23 Uhr
for /F "tokens=4,*" %%a IN ('dir %Ordner%content*.log^|find "%Gestern%"') do copy %Ordner%%%a "%Ziel%%Gestern%.log"
scheint nun zu funktionieren. Anscheinend war die Reihenfolge beim dir-Befehl falsch.
Bitte warten ..
Mitglied: Snowman25
13.11.2013 um 10:34 Uhr
Zitat von andimue:
wieso macht ihr es euch so schwer: ihr könnt doch statt dem "dir content*.log" einen "dir /b
content*.log" machen.

Könnten schon, aber dann kann man nicht mehr nach dem Änderungsdatum parsen, welcher im dir content*.log mit angezeigt wird.
Bitte warten ..
Ähnliche Inhalte
Windows Tools
gelöst Suche Tool für Fehlersuche (6)

Frage von honeybee zum Thema Windows Tools ...

Outlook & Mail
Outlook 2016 - keine Ergebnisse in der Suche (11)

Frage von Corraggiouno zum Thema Outlook & Mail ...

Windows Tools
gelöst Suche Programm um Log auszuwerten + Mail notify (3)

Frage von NetzwerkDude zum Thema Windows Tools ...

Outlook & Mail
gelöst Suche Möglichkeit in Outlook Mails einem Projekt zu zuordnen (3)

Frage von Barthinator zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

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 ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...