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

copy Befehl läuft unregelmäßig, move und ren laufen regelmäßig

Frage Entwicklung Batch & Shell

Mitglied: KeiosID

KeiosID (Level 1) - Jetzt verbinden

09.01.2009, aktualisiert 15:03 Uhr, 4542 Aufrufe, 4 Kommentare

Hallo,

bisher bin ich auf den Fehler nicht gestoßen,
da er nicht relevant war. Nun ist eine Systemerweiterung dazugekommen und ich verliere Dateien.

Zunächst einmal mein Script, dann meine Problematik:
rem Versandunterlagen in Print und save Verzeichnis kopieren/Verschieben
@echo on

set counter=0
set maxcount=10
:start

rem Etiketten und Chechire
set "Pfad=N:\AboOut00*.*"
for /f "delims=" %%i in ('echo %Pfad%') do set "varib=%%~nxi"
copy N:\%varib% C:\Streamserve\save\Adware\raw
copy N:\%varib% C:\Streamserve\Datamatrix\Versand
ren N:\"%varib%" "DMC_%varib%"
move N:\DMC_%varib% C:\Streamserve\spool04\

rem Palettenleitzettel
set "Pfad=N:\AboZePlt*.*"
for /f "delims=" %%i in ('echo %Pfad%') do set "varib=%%~nxi"
copy N:\%varib% C:\Streamserve\save\Adware\raw
move N:\%varib% C:\Streamserve\Print\Adware\Versandunterlagen

rem Bundzettel
set "Pfad=N:\AboZeBnd*.*"
for /f "delims=" %%i in ('echo %Pfad%') do set "varib=%%~nxi"
copy N:\%varib% C:\Streamserve\save\Adware\raw
move N:\%varib% C:\Streamserve\Print\Adware\Versandunterlagen

set /a counter=%counter% + 1
if "%counter%" NEQ "%maxcount%" goto start

exit
Meine Problematik:

Dieses Script wird jede Minute via Schedule Task aufgerufen.

Mein Quellsystem schreibt unter bestimmten Umständen Dateien fortlaufend.

Ist dies der Fall, funktioniert der Copy befehl nur teilweise, das heißt genauer:
solange eine Datei länger im Zugriff des dateierzeugenden Systems ist, wird diese nicht kopiert.
Am Ende wird diese allerdings umbenant und verschoben. Mir fehlen somit die Kopien im Zielordner.
Das tritt am Häufigsten bei den Etiketten und Chechhiren auf, da hier die größten Dateien erzeugt werden (bis zu 70MB).


Gibt es eine Lösung, wie man diese Kopien auch erzwingen kann?
Kann hier xcopy oder robocopy helfen? Habe im Forum nichts exaktes zu dieser Problematik gefunden.

Vielen Dank im Voraus

Gruß

KeiosID
Mitglied: Biber
09.01.2009 um 17:36 Uhr
Moin KeiosID,

glaube ich nicht, dass hier xcopy oder Robocopy helfen können.
Ich würd hier die Strategie wechseln und das Umbenennen/Moven nur dann machen, wenn das COPY erfolgreich war.
Wenn die Dateien nicht kopiert werden konnten, weil halt noch nicht fertig geschrieben, dann kommen die doch in einer späteren runde dran.

Also:
01.
.... 
02.
.... 
03.
copy N:\%varib% C:\Streamserve\save\Adware\raw 2> nul || goto :SkipRenameAndMove 
04.
copy N:\%varib% C:\Streamserve\Datamatrix\Versand 2>nul || goto :SkipRenameAndMove 
05.
ren N:\"%varib%" "DMC_%varib%" 
06.
move N:\DMC_%varib% C:\Streamserve\spool04\ 
07.
:SkipRenameAndMove 
08.
....
Grüße
Biber
Bitte warten ..
Mitglied: KeiosID
12.01.2009 um 08:58 Uhr
Hi Biber,

danke für die Lösung.

Ich habe mir inzwischen eine Workaround gebastelt, der folgendermasen aussieht:


rem Etiketten und Chechire
set "Pfad=N:\AboOut00*.*"
for /f "delims=" %%i in ('echo %Pfad%') do set "varib=%%~nxi"
copy N:\%varib% C:\Streamserve\save\Adware\raw
if not exist C:\Streamserve\save\Adware\raw\%varib% goto start
copy N:\%varib% C:\Streamserve\Datamatrix\Versand
ren N:\"%varib%" "DMC_%varib%"
move N:\DMC_%varib% C:\Streamserve\spool04\


Allerdings sieht Deine Lösung mal wieder irgendwie eleganter aus.

Könntgest Du mir noch die Funktionsweise von

2> nul || goto :SkipRenameAndMove

erläutern?

Danke

Grüße

Keios
Bitte warten ..
Mitglied: Biber
12.01.2009 um 09:12 Uhr
Moin KeiosID,

der von Dir gefundene Workaround wäre auch mein Plan B gewesen.
Zur Erläuterung von
copy N:\%varib% C:\Streamserve\Datamatrix\Versand 2>nul ||
Falls der COPY-Befehl einen Fehler hat (also nicht kopieren kann, z.B. weil Datei in Benutzung), dann passieren 2 Dinge
  • auf STDERR/Ausgabekanal 2 wird eine Fehlermeldung geschrieben "Datei kann nicht...". Diese entsorge ich mit 2>nul
  • und zweitens wird der ERRORLEVEL-Wert auf ungleich 0 gesetzt. Das prüfe ich mit "||". Dieses "||" bedeutet also in epischer Breite: "Wenn es einen Fehler gegeben hat, dann tue..."

Grüße
Biber
Bitte warten ..
Mitglied: KeiosID
12.01.2009 um 09:15 Uhr
Hi Biber,

vielen Dank.

Grüße

KeiosID
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
gelöst Copy Befehl in einer batch funktioniert nicht. (3)

Frage von Pauli-H zum Thema Windows Netzwerk ...

Batch & Shell
gelöst Batch mit Copy auf SBS2008 funktioniert nicht, auf Client geht es (9)

Frage von CyCOtt zum Thema Batch & Shell ...

Batch & Shell
gelöst Move mit Robocopy (2)

Frage von 0xC0FFE zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Entwicklung
gelöst Tipp für Anfänger- Wie würdet ihr automatischen Mailversand umsetzen? (12)

Frage von Cloudyme zum Thema Entwicklung ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...