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

Frage Entwicklung Batch & Shell

GELÖST

Batch-Job zum Dateiverschieben, 0kb Dateien ignorieren

Mitglied: Garcon

Garcon (Level 1) - Jetzt verbinden

13.05.2014, aktualisiert 14.05.2014, 1890 Aufrufe, 3 Kommentare

Hallo,

ich habe folgendes Problem.

Meine NAS erhält Dateien geliefert, in ein zentrales Verzeichnis. Mein Server ruft diese Dateien ab, und sortiert diese nach Datei-Endungen vor.

Der Abhole und Sortiervorgang zeigt nun (seit gestern erstmalig) hin und wieder Dateien mit 0kb zu erhalten. Meine Vermutung ist, dass der Schreibvorgang der Gegenseite auf der NAS noch nciht abgeschossen ist, denn von dort kamen im gleichen Zeitfenster wie die Erstelldaten der 0kb-Dateien ein paar Fehlerrückmeldungen.

Der Server holt die Dateien via Sceduled Task in einer batch-datei. das sieht heute etwa folgendermaßen aus:


net use \\NAS /user:test\ pwd


xcopy \\NAS\incoming\*.abc d:\externsend\abc_save
move \\NAS\incoming\*.abc d:\externsend\abc

xcopy \\NAS\incoming\*.def d:\externsend\def_save
move \\NAS\incoming\*.def d:\externsend\def

xcopy \\NAS\incoming\*.xml d:\externsend\xml_save
move \\NAS\incoming\*.xml d:\externsend\xml


net use \\NAS /d



im eigentlichen Zielverzeichnis wird die Datei weiterverarbeitet, und verschwindet dann, zur Sicherheit lege ich im 1. Schritt (xcopy) eine Kopie in einem Sicherungsordner an, welche nach 7 Tagen gelöscht wird. Nur so konnte ioch überhaupt sehen, dass erstmals 0kb-Dateien angekommen sind.

Ich suche jetzt einen Script-Teil, der obiges tut, aber sicherstellt, dass die Dateien nicht 0kb groß sind. diese müssen auf der NAS verbleiben, weil die Annahme, das der Sender noch schreibt, besteht.

Jetzt kommt es noch etwas komplizierter. Jede Datei auf der NAS hat eine zughörige XML-Datei (gleicher Dateiname, andere Endung). Die xml dient dem Server als erklärung, was er genau dort erhalten hat, bzw. was er damit tun soll. Es darf nun natürlich nciht passieren, dass eine XML transfgeriert wird, während die eigentliche Datei noch 0kb hat, und dehalb ignoriert wurde.

Hat jemand irgendeine gute Idee zur verwirklichung? Ich muss sagen, dass ich mich mit den Shell-Scripten / DOS-Scripten ziemlich schlecht auskenne. copy, move delte und verzeichniswechsel bekomme ich noch hin, auch sonst ein paar kleinigkeiten, aber wie kann ich die Dateieigenschaften auslesen?

Bitte um Mithilfe, vielen Dank
Garcon
Mitglied: Xaero1982
LÖSUNG 13.05.2014, aktualisiert 14.05.2014
Moin,

01.
 
02.
@echo on 
03.
 
04.
set dateiendung=abc 
05.
set xml=xml 
06.
set quelle=\\NAS\incoming\ 
07.
set ziel=d:\externsend\ 
08.
 
09.
for %%i in (%quelle%*.%xml%) do (for %%x in (%quelle%*.%dateiendung%) do if "%%~ni"=="%%~nx" if %%~zi gtr 0 if %%~zx gtr 0 xcopy "%%i" "%ziel%%%~ni%%~xi"  && xcopy "%%x" "%ziel%%%~nx%%~xx") 
10.
 
Ich denke anpassen schaffst du

Im Moment ist es nur für eine Dateiendung.

Evtl. kannst du das mit einer weiteren For-Schleife davor, also mit:

01.
 
02.
for %%a in (abc def geh) do for %%i in (%quelle%*.%xml%) do (for %%x in (%quelle%*.%%a) do if "%%~ni"=="%%~nx" if %%~zi gtr 0 if %%~zx gtr 0 xcopy "%%i" "%ziel%%%a_save\%%~ni%%~xi"  && move "%%i" "%ziel%"\ && xcopy "%%x" "%ziel%%%a_save\%%~nx%%~xx" && move "%%x" "%ziel%"\) 
03.
 
alle aufnehmen (ungetestet)

Die Dateiendung xml bleibt ja wie ich es verstanden habe gleich.

Was passiert hier sonst: Er überprüft
01.
"%%~ni"=="%%~nx"
Ob die Dateinamen gleich sind %%~n liefert nur den Dateinamen ohne Endung zurück. Also wenn zwei Dateien mit dem gleichen Namen vorhanden sind.
Dann prüft er weiter
01.
 if %%~zi gtr 0 if %%~zx gtr 0
ob sowohl die xml als auch die andere Datei größer als 0kb sind. (%%~z) liefert die Dateigröße.

Erst wenn das alles zutrifft kopiert er die Dateien.

Teste erst mal das erste Beispiel ... dann schauen wir weiter.

Gruß
Bitte warten ..
Mitglied: Xaero1982
13.05.2014, aktualisiert um 17:55 Uhr
01.
@echo on 
02.
 
03.
set xml=xml 
04.
set quelle=\\NAS\incoming\ 
05.
set ziel=d:\externsend\ 
06.
mkdir %ziel%xml_save 
07.
mkdir %ziel%xml 
08.
 
09.
 
10.
for %%a in (txt bat jpg) do for %%i in (%quelle%*.%xml%) do (for %%x in (%quelle%*.%%a) do if "%%~ni"=="%%~nx" if %%~zi gtr 0 if %%~zx gtr 0 xcopy "%%i" "%ziel%xml_save\" && xcopy "%%x" "%ziel%%%a_save\" && mkdir "%ziel%%%a" && move "%%i" "%ziel%xml\" && move "%%x" "%ziel%%%a\") 
11.
 
Damit sollte es dann klappen.

Gruß
edit: und er ward nicht mehr gesehen
Bitte warten ..
Mitglied: Garcon
14.05.2014 um 12:59 Uhr
vielen Dank dafür,

bin am Ummodeln und Testen. Werde vermutlich heute Abend die ersten Files drüber jagen können. Musste noch etwas umbauen, weil die Dateinamen

ABCD.EFG
und
ABCD.EFG.XML

zusammengehören. Sprich die %%xi muss inkl. Endung geprüft werden~n. Wenn ich das Coding richtig verstanden habe sollte ich es richtig gemacht haben.

Ich melde mich noch mal, wenn es Probleme gibt, bzw. schließe Dankend, wenn es funktioniert hat.

Gruß
Garcon
Bitte warten ..
Ähnliche Inhalte
Windows Server
PS Dateien löschen mit 0kb
gelöst Frage von Florian86Windows Server4 Kommentare

Hallo, ich habe auf unseren Fileserver immer wieder das Problem, das Temporäre Officedateien mit 0KB überbleiben und dies es ...

Windows Server
LocalizedResourceName aus desktop.ini ignorieren
Frage von Winfried-HHWindows Server3 Kommentare

Hallo in die Runde, auf unserem Server (Server 2016 Standard) gibt es den Ordner Schuelerdaten, in dem sich die ...

Windows 10
Einige Rechner ignorieren das Creators Update
Frage von PN-SchrauberWindows 104 Kommentare

Ich habe, seit einigen Wochen, eine seltsame Sache in meinem Netzwerk festgestellt. Und zwar hat sich ein Teil der ...

Windows Netzwerk
Forefrontserver interne Traffic ignorieren
gelöst Frage von smackeeWindows Netzwerk1 Kommentar

Hallo zusammen Informationen: Windows Server 2008 R2 Microsoft Forefront Threat Management Gateway 2010 Wie kann ich verhindern, dass der ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...