42641
Feb 01, 2007, updated at Feb 05, 2007 (UTC)
6617
13
0
Batch datei für Verschieben und Löschen mit Status meldung
Hallo
ich müsste wissen wie ich eine Batch erstelle die von zwei Ordner die Inhalte löscht und mir dann ein Logfile erstellt in dem drin steht das das löschen bzw das verschieben erfolgreich abgeschlossen ist. Ich habe mir gedacht das man es vielleicht so lösen könnte das er irgendwie prüft ob in dem Verzeichnis noch Dateien oder Ordner vorhanden sind und dann je nach dem in die Logfile schreibt Löschen bzw Verschieben erfolgreich beendet oder nicht erfolgreich beendet. Eventuell noch mit Datum und Uhrzeit wann die Letzte löschung oder verschiebung stattgefunden hat.
Kennt sich da jemand aus ? Mit Batch hatte ich noch nie sehr viel zu tun.
MfG
Thomas S.
ich müsste wissen wie ich eine Batch erstelle die von zwei Ordner die Inhalte löscht und mir dann ein Logfile erstellt in dem drin steht das das löschen bzw das verschieben erfolgreich abgeschlossen ist. Ich habe mir gedacht das man es vielleicht so lösen könnte das er irgendwie prüft ob in dem Verzeichnis noch Dateien oder Ordner vorhanden sind und dann je nach dem in die Logfile schreibt Löschen bzw Verschieben erfolgreich beendet oder nicht erfolgreich beendet. Eventuell noch mit Datum und Uhrzeit wann die Letzte löschung oder verschiebung stattgefunden hat.
Kennt sich da jemand aus ? Mit Batch hatte ich noch nie sehr viel zu tun.
MfG
Thomas S.
Please also mark the comments that contributed to the solution of the article
Content-Key: 50403
Url: https://administrator.de/contentid/50403
Printed on: April 18, 2024 at 23:04 o'clock
13 Comments
Latest comment
Hy
Als Batch alternative kann ich dir http://www.2brightsparks.com/downloads.html#freeware empfehlen.
Grüsse Shaby
Als Batch alternative kann ich dir http://www.2brightsparks.com/downloads.html#freeware empfehlen.
Grüsse Shaby
Dieses ist fürs löschen:
Teste aber erstmal ob es das so macht wie du willst.
@echo off
set ordner=H:\test\\
set Logfile=log.txt
:: Löschen der Dateien und Ordner
:: Kontrolle ob löschen erfolgreich war
set leer=1
FOR /F "delims=" %%i in ('dir /b %ordner%') do if not [%%i] equ set leer=0
:: Ausgabe in Logfile
if %leer% equ 1 (
echo %Date% %Time% %ordner%: Löschen erfolgreich beendet.>>%Logfile%
) else (
echo %Date% %Time% %ordner%: Löschen nicht erfolgreich beendet.>>%Logfile%
)
miniversum
Teste aber erstmal ob es das so macht wie du willst.
@echo off
set ordner=H:\test\\
set Logfile=log.txt
:: Löschen der Dateien und Ordner
set leer=1
FOR /F "delims=" %%i in ('dir /b %ordner%') do if not [%%i] equ set leer=0
:: Ausgabe in Logfile
if %leer% equ 1 (
echo %Date% %Time% %ordner%: Löschen erfolgreich beendet.>>%Logfile%
) else (
echo %Date% %Time% %ordner%: Löschen nicht erfolgreich beendet.>>%Logfile%
)
miniversum
Hallo tRipleT!
Die folgende Batchdatei löscht nur Dateien (keine Unterverzeichnisse; dafür aber auch schreibgeschützte oder versteckte Dateien) und protokolliert die leeren Verzeichnisse:
Grüße
bastla
[Edit] @ miniversum - Du schon wieder ... [/Edit]
Die folgende Batchdatei löscht nur Dateien (keine Unterverzeichnisse; dafür aber auch schreibgeschützte oder versteckte Dateien) und protokolliert die leeren Verzeichnisse:
@echo off
for %%d in ("D:\Test mit Leerzeichen" "D:\Test2") do (
attrib "%%~d\*.*" -r -s -h
del /q "%%~d\*.*"
dir "%%~d\*.*" /a-d >nul 2>nul || echo %date%_%time:~0,8% %%d leer >> D:\DelLog.txt
)
Grüße
bastla
[Edit] @ miniversum - Du schon wieder ... [/Edit]
Das Verschieben kannst du anschließend so machen (ungetestet):
FOR /F "delims=" %%i in ('dir /b %ordner%') do move "H:\test2" "%ordner%%%i"
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben erfolgreich>>log.txt
) else (
echo %Date% %Time%: Verschieben nicht erfolgreich>>log.txt
)
Ist allerdings ungetestet!
miniversum
FOR /F "delims=" %%i in ('dir /b %ordner%') do move "H:\test2" "%ordner%%%i"
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben erfolgreich>>log.txt
) else (
echo %Date% %Time%: Verschieben nicht erfolgreich>>log.txt
)
Ist allerdings ungetestet!
miniversum
Das verschieben war nicht getestet von mir.
Das Löschen geht ja.
Hier nochmal das Ganze (löschen und vershcieben) abgeändert. Gib bescheid ob es so geht wie du es willst:
set quellordner=H:\test2
set zielordner=H:\test1
set logfile=log.txt
:: Löschen der Dateien und Ordner im Zielordner
:: Kontrolle ob löschen erfolgreich war
set leer=1
FOR /F "delims=" %%i in ('dir /b %zielordner%') do if not [%%i] equ set leer=0
:: Ausgabe in Logfile
if %leer% equ 1 (
echo %Date% %Time% %zielordner%: Löschen erfolgreich beendet.>>%Logfile%
) else (
echo %Date% %Time% %zielordner%: Löschen nicht erfolgreich beendet.>>%Logfile%
)
:: Verschieben der Dateien
FOR /F "delims=" %%i in ('dir /b %quellordner%') do move "%quellordner%\%%i" "%zielordner%" 2>NUL
:: Kontrolle of verschieben erfolgreich war und Ausgabe in Logfile
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben von %quellordner% nach %zielordner% erfolgreich>>%logfile%
) else (
echo %Date% %Time%: Verschieben von %quellordner% nach %zielordner% nicht erfolgreich>>%logfile%
)
miniversum
Das Löschen geht ja.
Hier nochmal das Ganze (löschen und vershcieben) abgeändert. Gib bescheid ob es so geht wie du es willst:
set quellordner=H:\test2
set zielordner=H:\test1
set logfile=log.txt
:: Löschen der Dateien und Ordner im Zielordner
set leer=1
FOR /F "delims=" %%i in ('dir /b %zielordner%') do if not [%%i] equ set leer=0
:: Ausgabe in Logfile
if %leer% equ 1 (
echo %Date% %Time% %zielordner%: Löschen erfolgreich beendet.>>%Logfile%
) else (
echo %Date% %Time% %zielordner%: Löschen nicht erfolgreich beendet.>>%Logfile%
)
:: Verschieben der Dateien
FOR /F "delims=" %%i in ('dir /b %quellordner%') do move "%quellordner%\%%i" "%zielordner%" 2>NUL
:: Kontrolle of verschieben erfolgreich war und Ausgabe in Logfile
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben von %quellordner% nach %zielordner% erfolgreich>>%logfile%
) else (
echo %Date% %Time%: Verschieben von %quellordner% nach %zielordner% nicht erfolgreich>>%logfile%
)
miniversum