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

Xcopy per Batch prüfen ob Datei in Benutzung

Frage Entwicklung Batch & Shell

Mitglied: fireskyer

fireskyer (Level 1) - Jetzt verbinden

18.07.2011 um 16:15 Uhr, 7016 Aufrufe, 5 Kommentare

server windows 2008 64 bit

Morgen leute,

Ich habe ein Problem. Ich will per xcopy eine Telefonliste auf einen anderen Server hieven per Batch Script. Das klappt auch ganz gut, bloß weiß ich nicht, wie ich prüfen kann ob die zu verschiebende Datei in Benutzung ist.

Mein Script sieht zzt. so aus:


##batch copy script
XCOPY \\server\ordner\Telefonliste\Telefonliste.xls \\server\\ordner /S /E /C /H /O /R /Y /D /V
if %errorlevel%==0 goto KOPIEREN ERFOLGREICH
if not %errorlevel%==0 goto KOPIEREN FEHLER
pause



:KOPIEREN FEHLER




:KOPIEREN ERFOLGREICH



Das ist der aktuelle Stand... aber was muss ich setzen als Errorlevel, wenn ich prüfen will ob die Datei in Benutzung ist oder nicht. Falls ja, dann Script in 10 min nochmal ausführen. Falls nein Script gleich ausführen


Danke für die Hilfe

grüße fireskyer
Mitglied: Friemler
18.07.2011 um 17:22 Uhr
Hallo fireskyer,

schau Dir mal die Programme Handle.exe und PSExec.exe von SysInternals/Microsoft an. Mit Handle kannst Du feststellen, ob eine Datei geöffnet ist. PSExec dient zur Remoteausführung eines Programms (hier: Handle.exe) auf einem anderen Rechner.

BTW: Warum legst Du nicht einen geplanten Task an und lässt nachts kopieren?

Gruß
Friemler
Bitte warten ..
Mitglied: 60730
18.07.2011 um 22:40 Uhr
moin,

@ Friemler - in dem Fall muß man nicht extra 3rd Party oder Mark benutzen.

Eine geöffnete xls erkennt man - wenn eine versteckte Steuerdatei existiert. (Anhand dieser bekommt der 2. die Meldung Datei bereits von User xyz geöffnet bla bla)
  • Die kann - im Fall, dass der Zugriff abgebrochen wurde, auch mal "noch" vorhanden sein, obwohl die keiner mehr auf hat, dann kann man die in die Tonne treten - wenn die wirklich nicht offen ist, nicht.

if exist \\server\ordner\Telefonliste\~Telefon*.xls del \\server\ordner\Telefonliste\~Telefon*.xls
if not exist \\server\ordner\Telefonliste\~Telefon*.xls XCOPY \\server\ordner\Telefonliste\Telefonliste.xls \\server\\ordner /S /E /C /H /O /R /Y /D /V

Gruß

edit
\\server\ordner\ ist natürlich falsch, \\server\freigabe\ richtiger - obwohl manche ja Freigabe und Ordner identisch halten.
Bitte warten ..
Mitglied: Friemler
19.07.2011 um 00:22 Uhr
Moin TiMo,

ich habe das gerade mal überprüft - bei meinem Excel 2003 wird keine "Tildendatei" angelegt, nur Word 2003 macht das so. Wenn ich eine XLS in Excel öffne und ändere aber nicht speichere, kann ich sowohl über den Explorer als auch per Konsolen-COPY die Originaldatei in ein anderes Verzeichnis kopieren. Ist das jetzt irgendeine Einstellungssache oder verhalten sich Word und Excel einfach anders?

Gruß
Friemler
Bitte warten ..
Mitglied: 60730
19.07.2011 um 20:37 Uhr
Servus Friemler,

jetzt hast du mich aber erwischt....

Ich hätte Stein und Bein verwettet, das sich Äxsel da genauso wie der Rest der Office Suite verhält, aber dein Einwand stimmt ....
Ist das mal durch ein SP weg gekommen?

Anyway....

openfiles |find /i "Telefonliste\Telefonliste.xls" && echo "Datei ist offen" || XCOPY \\server\ordner\Telefonliste\Telefonliste.xls \\server\\ordner /S /E /C /H /O /R /Y /D /V


Gruß
Bitte warten ..
Mitglied: Friemler
19.07.2011 um 20:47 Uhr
Moin TiMo,

hmm, damit OPENFILES so wie von Dir gewünscht funktioniert, muss zuerst folgender Aufruf gemacht und dann ein Neustart durchgeführt werden:
openfiles /local on
Die Hilfe dieses Befehls warnt ausdrücklich davor das zu machen, da die Systemleistung dadurch sinken würde

Außerdem müsste OPENFILES ja auch remote auf dem Server, auf dem die Quelldatei abgelegt ist, ausgeführt werden. Dann bräuchte man zumindest PSEXEC. Aber da wir ja den armen Server nicht verlangsamen wollen, greifen wir hier ausnahmsweise doch mal auf beide Tools von Mark zurück .

Gruß
Friemler


[EDIT]
OPENFILES würde wie von Dir gewünscht funktionieren, wenn auf die Telefonliste nur über das Netzwerk zugegriffen wird, was ja wahrscheinlich der Fall ist. Also nix mit lahmem Server .
[/EDIT]

[EDIT2]
Um aber auch mal konkret zu werden:
psexec \\Server -h -u User -p Passwort -c handle.exe Telefonliste.xls > NUL 2>&1 || XCOPY /SECHORYDV "\\Server\Freigabe\Telefonliste\Telefonliste.xls" "\\Server\Freigabe"
Das verwendete Benutzerkonto muss ein Adminkonto sein.
[/EDIT2]
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Xcopy Batch-Datei (3)

Frage von Lauchheimer zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
gelöst Nach xcopy feststellen, ob Datei kopiert wurde oder nicht (9)

Frage von Scar61 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...