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
GELÖST

Batch datei für Verschieben und Löschen mit Status meldung

Frage Entwicklung Batch & Shell

Mitglied: 42641

42641 (Level 1)

01.02.2007, aktualisiert 05.02.2007, 5644 Aufrufe, 13 Kommentare

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.

Mit freundlichen Grüßen

Thomas S.
Mitglied: Shaby
01.02.2007 um 11:45 Uhr
Hy

Als Batch alternative kann ich dir http://www.2brightsparks.com/downloads.html#freeware empfehlen.

Grüsse Shaby
Bitte warten ..
Mitglied: 42641
01.02.2007 um 12:12 Uhr
Hallo

Danke aber es sollte schon eine ganz normale Batchdatei sein.

Mit freundlichen Grüßen

Thomas S.
Bitte warten ..
Mitglied: miniversum
01.02.2007 um 13:19 Uhr
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
FOR /F "delims=" %%i in ('dir /b %ordner%') do rd "%ordner%%%i" /s /q 2>NUL || del "%ordner%%%i" /s /q
:: 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
Bitte warten ..
Mitglied: bastla
01.02.2007 um 13:34 Uhr
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:
01.
@echo off 
02.
for %%d in ("D:\Test mit Leerzeichen" "D:\Test2") do ( 
03.
	attrib "%%~d\*.*" -r -s -h 
04.
	del /q "%%~d\*.*" 
05.
	dir "%%~d\*.*" /a-d >nul 2>nul || echo %date%_%time:~0,8% %%d leer >> D:\DelLog.txt 
06.
)
Grüße
bastla

[Edit] @ miniversum - Du schon wieder ... [/Edit]
Bitte warten ..
Mitglied: 42641
01.02.2007 um 13:39 Uhr
Hallo

ja das läuft genau so wie ich es mir vorgestellt habe. Jetzt muss er nur noch aus einem Anderen Ordner nennen wir ihn mal test2 in den ordner daten verschieben. Und hier auch sagen ob es gelaufen ist oder nicht. Wäre das noch eine große änderung ?

Soweit schon mal vielen Dank.

Mit freundlichen Grüßen

Thomas S.
Bitte warten ..
Mitglied: 42641
01.02.2007 um 13:43 Uhr
Hi Bastla

auch vielen Dank für deinen Beitrag. Aber die lösung für das löschen von miniversum reicht für meine zwecke völlig aus. Die Datei müsste jetzt nur noch wie oben beschrieben noch um ein zwei kleine Sachen erweitert werden (Verschieben)

Mit freundlichen Grüßen

Thomas Sergot
Bitte warten ..
Mitglied: miniversum
02.02.2007 um 08:31 Uhr
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
Bitte warten ..
Mitglied: 42641
02.02.2007 um 10:32 Uhr
So ganz läuft das noch nicht. Muss ich da vielleicht noch etwas beachten ? Denn aus ordner test 1 sollen dateien un Ordner gelöscht werden was auch schon geht. und aus Ordner test2 soll von C:\test2 auf d:\test2 verschoben werden
Habe hier mal die ganze Batch eingefügt.

Mit freundlichen Grüßen

Thomas S.

@echo off

set ordner=C:\test\
set Logfile=c:\%date%\log.txt

:: Löschen der Dateien und Ordner
FOR /F "delims=" %%i in ('dir /b %ordner%') do rd "%ordner%%%i" /s /q 2>NUL || del "%ordner%%%i" /s /q
:: 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%
)

set ordner=C:\test2\

FOR /F "delims=" %%i in ('dir /b %ordner%') do move "D:\test2" "%ordner%%%i"
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben erfolgreich>>log.txt
) else (
echo %Date% %Time%: Verschieben nicht erfolgreich>>log.txt
Bitte warten ..
Mitglied: miniversum
02.02.2007 um 12:52 Uhr
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
FOR /F "delims=" %%i in ('dir /b %zielordner%') do rd "%zielordner%\%%i" /s /q 2>NUL || del "%zielordner%\%%i" /s /q
:: 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
Bitte warten ..
Mitglied: 42641
02.02.2007 um 13:16 Uhr
Hi

nah dran nah dran
Ich schreibs nochmal genau hin was er machen sollte
Es gibt 3 Ordner
Test1
Test2
Test3

Der inhalt von Test 1 und 2 sol lverschoben werden auf eine andere Partition und der Inhalt von Ordner Test3 soll gelöscht werden. So wie es jetzt ist macht er das noch nicht.
Könntest Du mir da nochmal helfen. Es ist kurz vorm Ziel.

Mit freundlichen Grüßen

Thomas S.
Bitte warten ..
Mitglied: 42641
05.02.2007 um 10:06 Uhr
Batch läuft jetzt.
Nochmals vielen Dank an alle Poster die mir weitergeholfen haben.

Mit freundlichen Grüßen

Thomas Sergot
Bitte warten ..
Mitglied: Biber
05.02.2007 um 10:14 Uhr
Moin tRipleT,

wenn Dir mein Bitte nicht als zu dreist erscheint, dann poste doch bitte den (wesentlichen Teil Deiner) Batch hier für die Bätcher, die nach uns kommen werden.

Danke
Biber
Bitte warten ..
Mitglied: 42641
05.02.2007 um 10:20 Uhr
Aso ja kein Problem. Hier ist die zusammengestellte Batch.

@echo off

set ordner=c:\test\
set Logfile=log.txt

:: Löschen der Dateien und Ordner
FOR /F "delims=" %%i in ('dir /b %ordner%') do rd "%ordner%%%i" /s /q 2>NUL || del "%ordner%%%i" /s /q
:: 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%
)


set quellordner=c:\testmove\
set zielordner=D:\testmove\

FOR /F "delims=" %%i in ('dir /b %quellordner%') do move "%quellordner%\%%i" "%zielordner%" 2>NUL
if %errorlevel% lss 1 (
echo %Date% %Time%: Verschieben erfolgreich>>log.txt
) else (
echo %Date% %Time%: Verschieben nicht erfolgreich>>log.txt
)


Viel Spaß damit

Mit freundlichen Grüßen Thomas S.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...