Top-Themen

Aktuelle Themen (A bis Z)

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 Kopiervorgang nur wenn Zielverzeichnis leer

Mitglied: motec

motec (Level 1) - Jetzt verbinden

16.11.2005, aktualisiert 17.11.2005, 5366 Aufrufe, 5 Kommentare

Hallo zusammen,

bin heute zufällig auf dieses Forum gestossen, Super sache!!

Habe auch direkt eine Frage:

Per Bat will ich mehrmals täglich manuell Dateien kopieren.
Der Kopiervorgang darf jedoch nur dann starten wenn das Zielverzeichnis leer ist.
Falls das Verzeichnis nicht leer ist muss die Batchdatei eine Fehlermeldung liefern.

Kann mir hier jemand helfen??

Vielen Dank!

Gruss

motec
Mitglied: Biber
16.11.2005 um 15:35 Uhr
Moin motec,

willkommen im Forum. Sollst auch gleich Deinen ersten Newbie-Rüffel bekommen - selbst bei Batchen ist es mittlerweile (manchmal) wichtig, um welche Windowsversion es geht.

Folgender Batch zeigt eine der möglichen Strategien ab Windows 2000 ff, unter Win9x wären kleinere Anpassungen nötig. Allerdings nicht in den beiden eigentlich wichtigen Zeilen mit der "ist-Verzeichnis-leer?"-Prüfung im Block :ChkIfEmpty.
01.
:: ----- snipp isDirLeer.bat
02.
@echo off & setlocal
03.
Set "testdir=d:\temp\MyDir"
04.
if exist %testdir% rd %testdir% /s /q
05.
md %testdir%
06.
echo Leeres Verzeichnis wurde %testdir% angelegt..
07.
call :ChkIfEmpty LeeresDir
08.

09.
:: jetzt mal irgendeine Datei dort reinstellen 
10.
echo blah>%testdir%\blubb.txt
11.
call :ChkIfEmpty NichtLeeresDir
12.
if exist %testdir% rd %testdir% /s /q
13.
goto :eof
14.

15.
:ChkIfempty
16.
Echo Teste ..%1
17.
if exist %testdir% dir /b /A:-d %testdir%>nul 2>nul || @echo %testdir% ist leer
18.
if exist %testdir% dir /b /A:-d %testdir%>nul 2>nul && @echo %testdir% ist nicht leer
19.
goto :eof
20.
:: ----- snapp isDirleer.bat
Output bei mir wäre:
01.
>e:\isDirLeer.bat
02.
Leeres Verzeichnis wurde d:\temp\MyDir angelegt..
03.
Teste ..LeeresDir
04.
d:\temp\MyDir ist leer
05.
Teste ..NichtLeeresDir
06.
d:\temp\MyDir ist nicht leer
Beim Selbertesten bitte die Zeile Set "testdir=d:\temp\MyDir" ändern in Set "testdir=%temp%\MyDir".

HTH Biber
Bitte warten ..
Mitglied: motec
16.11.2005 um 17:38 Uhr
Hallo,

danke für die antwort. Hast recht, leider muss man immer das BS mitliefern. In meinem Fall ist der Quellrechner ein XP--Pro und der Zielrechner ein Win2000 Server.
Bevor ich was zu sage muss ich gestehen das ich bisher keine Erfahrungen mit der Batchprogrammierung habe.

Wenn ich das Script richtig verstehe erstellt es erst ein Verzeichnis und erstellt dann eine Datei, danach überprüft es ob der Ordner leer ist.

Wie soll mir das bei meinem Problem weiterhelfen?

Hier nochmal anders beschrieben:

Kopieren von Date mit dem Namen *.*(alles was in dem Quellverzeichnis vorhanden ist) in das Zielverzeichnis \\192.125.12.34\Backup\
Wenn das Verzeichnis bereits einen Inhalt, egal welcher Art hat, dann den Kopierbefehl nicht ausführen sondern einen Fehler melden.

Ziel ist hier die verschiedenste Dateien wie auch Dateiformate reinzukopieren und dann mit einem weiteren Programm zu verarbeiten. Wenn dieses Programm nicht sauber verarbeitet sollte darf nicht mehr reinkopiert werden weil dadurch unter Umständen stehengebliebene Dateien überschreiben werden können. Ausserdem habe ich damit eine Kontrolle über eine saubere Verarbeitung auf dem Zielrechner.


Nochmal danke.
Bitte warten ..
Mitglied: Biber
16.11.2005 um 17:54 Uhr

och, motec,
ich hatte Dein Problem schon verstanden (glaub ich) und es war durchaus konstruktiv gemeint - ich wollte Dir nur eine mögliche Strategie zeigen, wie Du diese Prüfung gestalten kannst.

Das Wesentliche ist ja in den beiden "IF Exist verzeichnis"-Zeilen:
..
:ChkIfempty
Echo Teste ..%1
if exist %testdir% dir /b /A:-d %testdir%>nul 2>nul || @echo %testdir% ist leer
if exist %testdir% dir /b /A:-d %testdir%>nul 2>nul && @echo %testdir% ist nicht leer
goto :eof
..

Mimik..
1) wenn das Verzeichnis existiert ( z.B. IF exist \\192.125.12.34\Backup\ ), dann...
2) dir /b /A:-d \\192.125.12.34\Backup>nul 2>nul
...zeige mir alle Dateien, die nicht das Directory-Attribut haben
Denn die beiden Pseudo-Einträge "."(aktuelles Verzeichnis) und ".."(Parent) will ich unterdrücken....

... dann -> zwei Möglichkeiten:
Entweder es gibt solche Dateien, also Verzeichnis nicht leer..
oder es gibt keine Dateien, dann ist es leer.

Und das war doch die Prüfung, die Du wolltest, dachte ich?
Sonst poste den Batch (oder den relevanten Teil davon), dann zeig ich das am konkreten Beispiel.

Grüße Biber
Bitte warten ..
Mitglied: motec
17.11.2005 um 12:57 Uhr
Danke für ie Info.
War das was ich brauche, hatte wohl gestern tomaten auf den augen.


gruss

motec
Bitte warten ..
Mitglied: Biber
17.11.2005 um 13:11 Uhr
Danke für die Rückmeldung,
und glaub mir: einige hier im Forum haben jeden Tag schlechtere Tage als Du gestern.
Schönen Tach weiterhin
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Linux bash script: Datei verschieben nur wenn Zielverzeichnis leer

gelöst Frage von ole-objektBatch & Shell2 Kommentare

Hallo! ich steh gerade total auf dem Schlauch: Ich muss in einem Skript viele Dateien in ein bestimmtes Verzeichnis ...

Linux Desktop

Kopiervorgang langsam

Frage von DaniLinux Desktop8 Kommentare

Guten Morgen werte Kolleginnen und Kollegen, nachdem ich mich entschlossen habe Privat auf Windows auf Linux umzusteigen, kommen nach ...

Windows 7

Kopiervorgang Logdatei

Frage von Riddler123Windows 71 Kommentar

Hi, hab ne NAS Festplatte und wollte wissen ob ich auf meinem Windows 7 Laptop nach dem Kopieren von ...

Windows Netzwerk

Kopiervorgang bricht ab !!!

gelöst Frage von alexlazaWindows Netzwerk6 Kommentare

Hallo Leute, im Einsatz ist ein HP ZBook 17 G4 mit WIN10 Pro. Seit neuestem bricht jeglicher kopiervorgang vom ...

Neue Wissensbeiträge
Humor (lol)
Und wie seid Ihr gegen Cyberattacken gewappnet?
Information von DerWoWusste vor 1 TagHumor (lol)5 Kommentare

aber wo ist der Hammer? :-)

Sicherheit
Ein weiterer Microsoft-Stirnklatscher
Information von DerWoWusste vor 1 TagSicherheit7 Kommentare

Habe gerade einen Artikel zu einem Sicherheitsproblem gefunden, welches mir zu seiner Zeit (gepatcht 2015) wohl durchgerutscht ist. Es ...

Windows 10
Upgradepfade Windows 10 LTSC
Erfahrungsbericht von Datenreise vor 2 TagenWindows 10

Nur eine kurze Info, für diejenigen, die es interessiert, da es hierzu im Netz aus nachvollziehbaren Gründen nicht allzu ...

Administrator.de Feedback
Wartungsarbeiten heute Nacht (Update)
Information von Frank vor 2 TagenAdministrator.de Feedback10 Kommentare

Hallo User, durch Umbauarbeiten in unserem Rechenzentrum (am Backbone) kann es heute Nacht (14-15.01.2019) zu kurzen Ausfällen unserer Seite ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 - kein Boot mehr nach Domänenaustritt
gelöst Frage von Ghost108Windows 1025 Kommentare

Hallo zusammen, habe hier eine Windows 10 Maschine, die ich gerne aus der Domäne austreten lassen möchte. Nach Austritt ...

Microsoft
SFirm 4.0 auf Terminalserver startet für jeden angemeldeten Benutzer diverse Dienste
Frage von Frank84Microsoft21 Kommentare

Hallo zusammen, wir verwenden Sfirm 4.0 auf einem Terminalserver (der SQL Server ist auf einem separaten Server), das Problem ...

Internet
Google-Suchergebnisse, Schnelleinblendung, woher kommt der Inhalt?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Ich bin der Systembetreuer einer kleinen Gemeinde in Süddeutschland. Wir betreiben auch eine Leihbücherei. Eine Kundin hat letzten ...

Windows Server
Frage bzgl. Windows Server Lizenzierung Hyper-V
gelöst Frage von g0drealmWindows Server15 Kommentare

Guten Morgen, da wir demnächst wegen unserem neuen ERP-System einen Hyper-V Server bekommen, wollte ich vorab noch eine Sache ...