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, 1704 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
Router & Routing
gelöst Suche guten Router für Router-Kaskaden (15)

Frage von McLion zum Thema Router & Routing ...

Windows Server
gelöst Dateiinhalt Suche auf Clients an Server 2016 nicht funktionsfähig (2)

Frage von vBurak zum Thema Windows Server ...

Switche und Hubs
Suche 10 GBit Router für Heimnetzwerk (14)

Frage von Alexander.Schmitt zum Thema Switche und Hubs ...

Windows 10
Login-Credentials kopieren? (12)

Frage von 1410640014 zum Thema Windows 10 ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(5)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...