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, 4513 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...