Möchte in meinem Netzwerk unter W2K regelmäßig automatisiert Dateien vom Desktop zum Laptop übertragen. Bisher mache ich das mit einem kleinem Batchprogramm über xcopy.
Jetzt möchte ich aber direkt von einem Ordner in einen anderen Ordner kopieren, ohne einen neuen Laufwerksbuchstaben zu vergeben. Also direkt von c:\"Ordner"\... an "Netzwerk-Computerbezeichnung"\"Ordner"\...
Wie sieht die Zielbezeichung dann aus? Freigegeben ist der Zielordner natürlich!
Heimnetzwerke - WIFI, LAN, Router und Co 16.538 Themen, 81.400 Beiträge
\\Namequellrechner\c\ordner\dateinamen
\\Namezielrechner\c\ordner\dateinamen
So sieht's jetzt aus, und es funzt aber nicht:
xcopy c:\"Dokumente und Einstellungen"\"Administrator"\"Eigene Dateien"\"ContentSaver-Archive"\*.csa
\\OTTW2K2\c:\"Dokumente und Einstellungen"\"Administrator"\"Eigene Dateien"\"ContentSaver-Archive"\*.*
????
heisst die freigabe auf ottw2k2 auch wirklich c:? vor allem, dass da ein doppelpunkt dran sein soll, kann ich nicht glauben.
Der Doppelpunkt bei c im Ziel sollte weg und was sollen die Anführungszeichen ??
Die Anführungszeichen brauchst Du bei Namen mit Leerzeichen!
Souki
Exakt. Sonst hätte ich in der DOS-Schreibweise schreiben müssen, da die Batch-datei auf DOS (bzw. "Pseudo-DOS" bei W2K) läuft.
Aber leider hat mich das mit C: oder C auch nicht weiter gebracht.
Die Syntax fuer den Zielrechner lautet:
\\Rechnername\Freigabename
Hast Du also das z.B. das Verzeichnis ContentSaver-Archive auf dem Zielrechner als save Freigegeben sollte das so aussehen:
\\OTTW2K2\save
Gruss
Ich meine mal irgendwo gelesen zu haben, das der copy, oder xcopy Befehl keine UNC-Pfade unterstützt :-(
wie wäre es mit
---
echo temporär einen Buchstaben zuweisen
net use x: \\computer\freigabe
echo Dateien übertragen
xcopy c:\*.* x:
echo Einbindung wieder lösen
net use x: /delete
---
Ich stand mal vor dem selben problem und habe es so umgangen.
XPectIT
Habe mir auch gedacht , daß xcopy keine Unc-Namen kann.
Dein Vorschlag ist soweit O.K., man könnte es noch weiterspinnen und den ganzen Kram per VB Script handeln, das geht garantiert !
z.B.
'Create des Objektes als FileSystemObject und ShellObject
SET fs = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
'Initialisieren der Variablen
Source = "\\dc1\d\dii"
Target = "\\dc3\d\dii"
' Kopierroutine für Subvol D:\DII
' *******************************
'Löschen der Dateien im Verzeichnis D:\dii auf dc3...
ret=fs.DeleteFolder (Target,true)
'Kopieren der Dateien im Verzeichnis D:\dii mit Überschreibung, wenn bereits da...
ret=fs.CopyFolder (Source,Target,true)
if CStr(Err.Number) = 0 then
'Info an Eventlog über erfolgreichen Abschluß
ret = "\\dc1\c\scripts\logevent.exe -m \\tgt_dc1 -s S -c 1000 " & Chr(34)
ret = ret & "Dispos II von dc1 auf dc3 erfolgreich kopiert"
ret = ws.run (ret,0)
Err.Clear
Text = "Dispos II Kopie auf dc3 war erfolgreich !!"
MSGString = "\\dc1\c\scripts\sendmail.exe -u %COMPUTERNAME% -p " & Chr(34) & Chr(34) & " -s D2Copy.vbs.O.K. -r operator_s -m " & Chr(34)
MSGString = MSGString & Text & Chr(34)
ret = ws.run (MSGString,0)
else
'Info an Eventlog über fehlerhaften Abschluß
MSGString = "WHS D2Copy.vbs mit Fehler # " &CStr(Err.Number) & " ," & Err.Description
ret = "\\dc1\c\scripts\logevent.exe -m \\dc1 -s E -c 1000 " & Chr(34)
ret = ret & MSGString
ret = ws.run (ret,0)
Err.Clear
Text = "Dispos II Kopie auf dc3 war nicht erfolgreich, bitte kontrollieren !!"
MSGString = "\\dc1\c\scripts\sendmail.exe -u %COMPUTERNAME% -p " & Chr(34) & Chr(34) & " -s D2Copy.vbs.Fehler -r operator_s -m " & Chr(34)
MSGString = MSGString & Text & Chr(34)
ret = ws.run (MSGString,0)
end if
WScript.Quit()
'************************************* Ende der Routine ***************************************
Die Geschichte des Eventlogs schreiben und Mailversendes kann man einfach raus lassen !
Hoffe es hilft ein wenig
repi
Ein wirklich huebsches Script.
Stellt sich die Frage nach dem Sinn wenn es 2 Zeilen in einer Batch auch tun.
Ich habe im Moment leider kein W2K mehr am laufen aber unter XP funktioniert der copy-Befehl wunderbar mit UNC-Pfaden, und meines Wissens hat sich an diesem zu W2K nichts geaendert.
Gruss
Stefan
...dann hat man mir hier ein "falsches" Win2k oder einen Falschen copy-Befehl untergeschoben :-)
Ich sitze an einem W2k Rechner und da geht nix (...nicht nur beim copy-Befehl *gg*)
XPectIT
Nun das Scriptchen ist etwas grösser, da es noch eine Mail über den erfolgreichen bzw. nicht erfolgreichen Abschluss der Aktion verschickt und obendrei auch noch in der Ereignissanzeige mit loggt !
Das bekommste wohl doch nicht mit 2 Zeilen Batch hin oder ??
Habe ausdrücklich geschrieben, daß man das rauslassen kann !
Ausserdem was nützt Dir ein CMD-Zweizeiler, wenn er nicht funktioniert !?
Ich kann mich nur "good4u" anschließen:
soweit ich weiß nur \\Rechnername\Freigabe
ohne c:
Gruß
Boni
C:\>copy c:\linelst.txt \\tgt_dc1\d\ftpdata\*.*
1 Datei(en) kopiert.
C:\>
Das habe ich unter W2K kopiert !
C:\>xcopy c:\linelst.txt \\tgt_dc1\d\ftpdata\*.*
\\tgt_dc1\d\ftpdata\LineLst.txt überschreiben (Ja/Nein/Alle)? j
C:\LineLst.txt
1 Datei(en) kopiert
... und das auch !!!
ES GEHT!!! Danke an alle, aber im Besonderen an good4u und real_boni.
xcopy c:\"Dokumente und Einstellungen"\"Administrator"\"Eigene Dateien"\"ContentSaver-Archive"\*.csa \\ottw2k2\CSArchiv\*.*
Das mit dem c: weglassen war der entscheidende Tip, das hatte ich zuvor nicht kapiert. Aber folgendes ist noch zu beachten (zumindest war das dann noch ein Haken bei mir). xcopy kopiert mit UNC ohne weiteres nur in die erste Pfadebene (also nur C:\xxx).
Da ich jedoch einen Zielordner in der 4. Ebene ansprechen wollte (gleicher Pfad wie Quellaufwerk), und nur genau diesen mit einer Freigabe im Netzwerk versehen wollte (und nicht den ganzen Pfad - denn dann hätte es auch funktioniert), wurde es noch erforderlich, zusätzlich zur "normalen" Freigabe eine weitere Freigabe einzugeben. Damit wird die der Ordner wohl in die erste Ebene verschoben, und dann klappt's.
Vielen Dank noch einmal an alle, vielleicht hilft's ja anderen auch.