Ergebnis einer Suche mit dir und find mit copy kopieren
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 221293
Url: https://administrator.de/forum/ergebnis-einer-suche-mit-dir-und-find-mit-copy-kopieren-221293.html
Ausgedruckt am: 23.12.2024 um 02:12 Uhr
7 Kommentare
Neuester Kommentar
Hallo @94erBrom,
Uhm.. ja durchaus. Wie stellst du dir das vor, was da passieren soll? Diese Verkettung hat leider keinen Sinn..
Gruß,
@Snowman25
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.
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
Dein Output nach find wird in etwa so aussehen:
Um da jetzt nur den Dateinamen herauszubekommen, brauchst du eine Der Dateiname liegt dann in
Im Endeffekt also:
Gruß,
@Snowman25
PS: Nicht vergessen! In Batch-Dateien musst du %a und %b mit 2 %% schreiben! Also %%a und %%b.
05.11.2013 14:44 18.499.537 contentXYZ.log
FOR
-Schleife:for /F "tokens=3*" %a IN ('dir content*.log^|find "%Gestern%"') do [...]
%b
.Im Endeffekt also:
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.
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
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
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.
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.