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, 1697 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 ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Suche Projektpartner
Suche Inspiration für einen Webeditor (2)

Frage von Yanmai zum Thema Suche Projektpartner ...

Windows Update
Windows Update-Suche nach Win7 Neuinstallation wieder schneller (4)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Server-Hardware
gelöst Suche Hardware für Terminalserver für Datev Geschwindigkeitsrakete (8)

Frage von Mortifer zum Thema Server-Hardware ...

Windows Server
Powershell - suche nach gelöschter Datei aus LOG (3)

Frage von krischeu zum Thema Windows Server ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (22)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Linux Netzwerk
DHCP IP-vergabe erst nach 1-2 Minuten (11)

Frage von Maik82 zum Thema Linux Netzwerk ...