Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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, 7476 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst In Batch auf Erstelldatum einer Datei prüfen (5)

Frage von AS-N00 zum Thema Batch & Shell ...

Batch & Shell
gelöst Xcopy-script kopiert nur 1 datei? (2)

Frage von f0rml0s zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei zum Kopieren aktueller Dateien erstellen (5)

Frage von daniel011 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Windows Server
S MIME Zertifikat aus AD in Outlook einbinden (12)

Frage von chb1982 zum Thema Windows Server ...