kayes73
Goto Top

Kopieren per bat läuft ins Leere

Hallo zusammen!

ich habe eine bat erstellt mit dem xcopy Befehl

xcopy /l /e "F:\Geosoft\Georg.net\Daten\Dokumente\%jjjj%\%projekt%\Berechnungen\*" 192.168.0.134\C$\Daten\Außendienst\%jjjj%\%projekt%\  

Der Kopiervorgang hat in einem Testlauf gesagt:

13 Datei(en) kopiert

Im eigentlichen Zielverzeichnis tauchen die Dateien nicht auf und auch sonst kann ich die Daten nirgendwo finden.

Die Konstellation ist folgende:

Quelle (Verzeichnis auf Server)

"F:\Geosoft\Georg.net\Daten\Dokumente\%jjjj%\%projekt%\Berechnungen\*"

Ziel (Außendienstrechner, auf einem anderen Client als Netzlaufwerk eingebunden)

192.168.0.134\C$\Daten\Außendienst\%jjjj%\%projekt%\
oder
O:\Daten\Außendienst\%jjjj%\%projekt%\


Aus dem Quell Verzeichnis sollen alle Dateien, aber KEINE Ordner kopiert werden und im Zielverzeichnis der Ordner %projekt% angelegt werden, wenn er noch nicht vorhanden ist.

Ich weiß, für das Ausklammern der Verzeichnisse fehlt auch noch ein Parameter, aber ich möchte gerne erst das generelle Kopieren hinkriegen...


Hier mal die komplette bat:

@echo off
:start
CLS
COLOR C
ECHO.
ECHO ==================================================================== 
ECHO Datenuebertragung
ECHO.
ECHO Bei vorhandenen Daten erfolgt eine Abfrage vor dem überschreiben!!! 
ECHO.
ECHO    (1) von PC auf COLLIBRI
ECHO    (2) von COLLIBRI auf PC
ECHO    (3) Ende
ECHO ====================================================================	      
set auswahl=
set /p auswahl="Bitte gebe eine Nummer ein und bestaetige mit Enter: "  
if "%auswahl%" == "1" goto PCARMOR  
if "%auswahl%" == "2" goto ARMORPC  
if "%auswahl%" == "3" goto ende  
goto start


:PCARMOR
CLS
Color A
ECHO.		      
ECHO ==================================================
ECHO.
ECHO        UEBERTRAGUNG PC AUF COLLIBRI
ECHO.
ECHO ==================================================
	set /P jjjj= Jahrgang? 
ECHO.
	set /P projekt= Projekt? 
ECHO.
xcopy /l /e "F:\Geosoft\Georg.net\Daten\Dokumente\%jjjj%\%projekt%\Berechnungen\*" 192.168.0.134\C$\Daten\Außendienst\%jjjj%\%projekt%\  
ECHO.
ECHO Datenuebertragung beendet
ECHO.
ECHO ====================================================
set /P var= (1) weiteres Projekt  oder oder (2) Ende? 
		if /I "%var%"=="1" goto PCARMOR  
		if /I "%var%"=="2" goto ende  
goto ende		
ECHO.


:ARMORPC
CLS
Color E
ECHO.		      
ECHO ==================================================
ECHO.
ECHO        UEBERTRAGUNG COLLIBRI auf PC
ECHO.
ECHO ==================================================
	set /P jjjj= Jahrgang? 
ECHO.
	set /P projekt= Projekt? 
ECHO.
xcopy /l /e 192.168.0.134\C$\Daten\Außendienst\%jjjj%\%projekt%\* "F:\Geosoft\Georg.net\Daten\Dokumente\%jjjj%\%projekt%\Berechnungen\"  
ECHO.
ECHO Datenuebertragung beendet
ECHO.
ECHO ====================================================
set /P var= (1) weiteres Projekt  oder oder (2) Ende? 
		if /I "%var%"=="1" goto ARMORPC  
		if /I "%var%"=="2" goto ende  
goto ende		
ECHO.
:ende

Content-ID: 276743

Url: https://administrator.de/contentid/276743

Ausgedruckt am: 19.11.2024 um 17:11 Uhr

holli.zimmi
holli.zimmi 08.07.2015 um 14:18:51 Uhr
Goto Top
Hi,

das Verzeichnis %jjj% ist das Problem denke ich!
Es könnte sein das da ein Parameter erwartet wird ...

Gruß

Holli
kayes73
kayes73 08.07.2015 um 14:34:44 Uhr
Goto Top
Aber die Variablen werden doch vorher abgefragt!? %jjjj% ist bekannt.
holli.zimmi
holli.zimmi 08.07.2015 um 14:38:06 Uhr
Goto Top
Hi,

ich habe es vorher getestet. Das %jjj% kann auch ein Verz. sein! Dies kann man in der CMD anlegen.
Meine Vermutung liegt daher, das der PC eher ein Verz. %jjj% anlegt, an statt das Jahr "19xx" oder "20xx"!

Gruß

Holli
AndreasHoster
AndreasHoster 08.07.2015 um 14:46:50 Uhr
Goto Top
Was auf den ersten Blick auffällt:
UNC Pfade sollten mit \\ anfangen (also \\192.168.0.134\....) und man sollte Pfade mit Variablen, die Leerzeichen enthalten können mit " abgrenzen.

Ansonsten:
Mit @echo off alle Ausgaben unterdrücken ist bei einer Fehlersuche nicht der optimale Weg.
kayes73
kayes73 08.07.2015 um 14:49:15 Uhr
Goto Top
Ja, das %jjjj% muss ein Verzeichnis sein. In meinem Test auf ein und demselben Rechner, auf verschiedenen Partitionen hat es einwandfrei geklappt.
Stehe jetzt auch etwas auf dem Schlauch, wie du das meinst?
kayes73
kayes73 08.07.2015 um 15:15:01 Uhr
Goto Top
xcopy /l /e "F:\Geosoft\Georg.net\Daten\Dokumente\%jjjj%\%projekt%\Berechnungen\*" "\\192.168.0.134\C$\Daten\Außendienst\%jjjj%\%projekt%\"


-> Ungültige Laufwerksangabe

könnte das ß in Außendienst der Verursacher des Problems sein?
holli.zimmi
Lösung holli.zimmi 08.07.2015, aktualisiert am 09.07.2015 um 10:08:05 Uhr
Goto Top
HI

set /P jjjj= Jahrgang?

Was soll das eigentlich bewirken?

Gruß

Holli
kayes73
kayes73 08.07.2015 um 15:26:02 Uhr
Goto Top
Ich möchte eine Jahrgangsvariable haben. In Kombination mit %projekt%. Diese 2 Variablen sollen bewirken das z.B. %jjj% = 2015 und %projekt% = 15D262 folgendes auslösen

Dateien die unter dem Verzeichnis

F:\Geosoft\Georg.net\Daten\Dokumente\2015\15D262\Berechnungen

stehen, sollen in

\\192.168.0.134\C$\Daten\Außendienst\2015\15D262\

kopiert werden. Und wenn dieser Pfad (hier das Projekt, der Jahrgang besteht bereits) noch nicht vorhanden ist, soll er angelegt werden.

Mir ist klar, das ich den Jahrgang auch aus dem Projektnamen ableiten kann, aber erst einmal wollte ich einfacher beginnen face-wink
kayes73
kayes73 09.07.2015 um 10:08:02 Uhr
Goto Top
LÖSUNG:

Am Zielort waren die nötigen Berechtigungen zum Schreiben nicht vorhanden. Nach Anpassung der Berechtigungen hat das kopieren tadellos geklappt.