conym18
Goto Top

Task klappt manuell, aber nicht mit Task-Planer

Guten Morgen,

ich habe folgendes Script:
@echo off & setlocal

set THISPATH=C:\Program" "Files\CB\rc_backup\  
set SMTPSRV=192.168.21.27
set FROMTOEMAIL=xxx@pxxx

for /f "tokens=3" %%i in ('robocopy /?^|find "Started"') do (  
    IF "%%i" == "Mon" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\MO\" /MIR /R:0 /w:0 > c:\test.txt  
	)
    IF "%%i" == "Tue" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\DI\" /MIR /R:0 /w:0 > c:\test.txt	  
	)
    IF "%%i" == "Wed" (  
		"C:\Program Files\CB\rc_backup\robocopy.exe" G:\Home Z:\Fileserver\HOME\MI /MIR /R:0 /w:0 > c:\test.txt  
	)
    IF "%%i" == "Thu" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\DO\" /MIR /R:0 /w:0 > c:\test.txt	  
	)
	IF "%%i" == "Fri" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\FR\" /MIR /R:0 /w:0 > c:\test.txt	  
	)
    IF "%%i" == "Sat" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\SA\" /MIR /R:0 /w:0 > c:\test.txt	  
	)
    IF "%%i" == "Sun" (  
		C:\Program Files\CB\rc_backup\robocopy.exe "G:\Home" "Z:\Fileserver\HOME\SO\" /MIR /R:0 /w:0 > c:\test.txt	  
	)

)

%THISPATH%mail-as-batch.exe -smtp %SMTPSRV% -from %FROMTOEMAIL% -to %FROMTOEMAIL% -s "CB dailybkp HOME auf 192.168.21.29 Backup" -b "CB dailybkp HOME auf 192.168.21.29 Backup erledigt"  

Wenn ich die Datei per Hand starte funktioniert Sie wie gewollt.

Wenn ich die Datei per Task Planer manuell starte, dann wird sie auch aufgerufen, aber in der "c:\test.txt" steht dann folgendes:

Z:\Fileserver\HOME\MI\The system cannot find the path specified.

G:\Home\Z:\Fileserver\HOME\MI\*.*
*.* /S /E /COPY:DAT /PURGE /MIR /R:0 /W:0 Z:\Fileserver\HOME\MI\The system cannot find the path specified.


Warum das?
Warum kann er plötzlich den Pfad nicht finden, wenn ich die Datei manuell aufrufe, dann wird er gefunden?

Danke für hilfe.

Content-ID: 183678

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

Ausgedruckt am: 16.11.2024 um 17:11 Uhr

BekkZter
BekkZter 18.04.2012 um 08:53:38 Uhr
Goto Top
Moin,

ich würde sagen das in der Zeile 15 die Anführungszeichen fehlen ....
Wäre so mein erster Gedanke, auch mit nur wenig Ahnung vom Programmieren ...

Gruß
conym18
conym18 18.04.2012 um 09:22:07 Uhr
Goto Top
daran liegt es leider auch nicht.
ITSchlumpf
ITSchlumpf 18.04.2012 um 09:29:14 Uhr
Goto Top
Moin,

kann es an dem fehlenden "\" hinter dem "Z:..." in Zeile 15 liegen?

Gruß
Schlumpf
conym18
conym18 18.04.2012 um 09:41:28 Uhr
Goto Top
nein auch nicht.

Ea klappt ja wenn ich es manuell starte.
nur aus dem Taskplaner manuell gestartet klappt nicht.


face-sad
ITSchlumpf
ITSchlumpf 18.04.2012 um 09:43:58 Uhr
Goto Top
Könnte es sein, dass es ein Benutzerproblem ist? Also Rechte? Startest du das Skript immer mit dem gleichen Userkonto?

Gruß
conym18
conym18 18.04.2012 um 09:54:11 Uhr
Goto Top
habe mich remote auf den server eingeloggt.
als DOMAIN\Administrator

das laufwerk Z:\ ist ein Netzlaufwerk.

starte ich nun das script per hand, SUUUUUUPPPPPPEEEEERRRRR ::::face-smile)))))

als Task angelegt, als inhaber auch DOMAIN\Administrator und er bringt den fehler.
ITSchlumpf
ITSchlumpf 18.04.2012 um 09:58:05 Uhr
Goto Top
Hast du schonmal versucht mit Pausen oder echos zu arbeiten um zu schauen wann er genau abbricht oder ob er irgendwo einen fehler auswirft?
Kann ja sein, dass irgendeine Variable nicht richtig gesetzt wird oder so.
106009
106009 18.04.2012 um 10:06:40 Uhr
Goto Top
Hi,

was soll dieses merkwürdige Konstrukt in Zeile 3? Die Anführungszeichen gehören wohl woanders hin.

Bei den restlichen Pfadangaben in den Zeilen 9, 12, 15 usw. fehlen die Anführungszeichen um den Pfad.

Gruß
conym18
conym18 18.04.2012 um 10:10:27 Uhr
Goto Top
Er geht wie gewollt in zeile 15

robocopy geht auch, jedoch findet er laut ausgabe den pfad nicht.
Z:\ gibt es aber.

Z:\Fileserver\HOME\MI\The system cannot find the path specified.

G:\Home\Z:\Fileserver\HOME\MI\*.*
*.* /S /E /COPY:DAT /PURGE /MIR /R:0 /W:0 Z:\Fileserver\HOME\MI\The system cannot find the path specified.


Das wirklich wirklich merkwürdige ist, dass es per Hand geht, sprich die *.bat per hand zu starten, aus dem Planer aber nicht.
Also geht das Script und alles ja.

Wenn ich die Zeile 15 direkt im CMD eintrage und starte, geht es auch.
Hier findet er das Laufwerk Z:\
conym18
conym18 18.04.2012 um 10:14:00 Uhr
Goto Top
Bitte richtig lesen!

Ich habe kein problem mit dem Script ansich, da es richtig funktioniert, jedoch nur solang wie ich es per Hand starte.
106009
106009 18.04.2012 um 10:20:11 Uhr
Goto Top
Zitat von @conym18:
Bitte richtig lesen!

Na ja, wenn du alles besser weißt, dann vergiss meinen Kommentar einfach und bemühe weiter deine Glaskugel.
kristov
kristov 18.04.2012 um 10:24:28 Uhr
Goto Top
Zitat von @conym18:
Bitte richtig lesen!

Ich habe kein problem mit dem Script ansich, da es richtig funktioniert, jedoch nur solang wie ich es per Hand starte.

Hallo,

doch, Du hast offensichtlicht schon ein Problem mit dem Script, sonst würde es ja klappen. Auch wenn es manuell funktioniert, Dein Ziel ist es letztendlich, daß es auch als Task funktioniert...
Bitte setz Quelle und Ziel in Zeile 15 unter Anführungszeichen und einige Dich generell auf eine einheitliche Schreibweise, überarbeite Deinen Beitrag entsprechend und wenn's dann noch immer nicht klappt, können wir ja weiterreden.

Wenn ich den Fehler
G:\Home\Z:\Fileserver\HOME\MI\*.*
richtig interpretiere, liegt da der Hund begraben. Gibt's denn dieses Verzeichnis überhaupt?

kristov
Penny.Cilin
Penny.Cilin 18.04.2012 um 10:30:13 Uhr
Goto Top
Setze wie von ollidolli beschrieben die Anführungszeichen, dann sollte es auch mit dem Taskplaner funktionieren.

Da Du auf ein Netzwerklaufwerk kopierst würde ich empfehlen, die die Parameter
 /R:0 /W:0 
in
 /R:3 /W:30 
zu ändern.
Damit bei Netzwerkproblemen eine Wartezeit und mehrere Versuche möglich sind.
conym18
conym18 18.04.2012 um 10:56:49 Uhr
Goto Top
Ok, dann nehmen wir nur Scriptzeile 7-30

Die Pfade in " gesetzt.

Es klappt auch dann nicht!
Penny.Cilin
Penny.Cilin 18.04.2012 um 11:23:54 Uhr
Goto Top
Nur so als Anmerkung:Robocopy hat eine LOG-Funktion, Die Zeile
> c:\test.txt 
kannst Du durch
 /log:c:\test.txt 
ersetzen.
Ändere mal den Code vom Skript, denn es steht immer noch
 "G:\Home Z:\Fileserver\HOME\MI   
.
Sollte das nicht
 ... "G:\Home" "Z:\Fileserver\HOME\MI" ...   
heißen?
conym18
conym18 18.04.2012 um 12:26:47 Uhr
Goto Top
So habe ich es schon in meinem Script:

... "G:\Home" "Z:\Fileserver\HOME\MI" ...

Auch das geht weiterhin nicht.
d4shoerncheN
d4shoerncheN 18.04.2012 um 12:44:14 Uhr
Goto Top
Ich gehe mal davon aus, dass das Script was du mit dem Taskplaner ausführen lässt - auch auf einer Netzwerkressource (Netzlaufwerk o. Ä.) abgelegt ist?

Speicher dir dein Script man auf C:\ und ändere es im Taskplaner ab, danach den Task mal starten.
Penny.Cilin
Penny.Cilin 18.04.2012 um 12:44:21 Uhr
Goto Top
Zitat von @conym18:
So habe ich es schon in meinem Script:

> ... "G:\Home" "Z:\Fileserver\HOME\MI" ...

Auch das geht weiterhin nicht.

Bis Zeile 12 funktioniert es? Auch via Taskplaner? Setze mal die Zeilen 14 und 15 auf Kommentar und schau ob dann das Skript via Taskplaner läuft.
AndreasHoster
AndreasHoster 18.04.2012 um 13:02:04 Uhr
Goto Top
Gähn, es gibt eine mindestens 3-stellige Anzahl von Postings hier im Forum zu genau diesem Thema. Suchen hilft.

Um es kurz zu machen:
Der Taskplaner startet den Task zwar mit den Rechten des angegebenen Benutzers, es werden aber keine Startskripte oder Anmeldeskripte ausgeführt, was bedeutet das KEINE Netzlaufwerke gemappt werden. Deswegen gibts auch kein Z:
Mappe Z: und sonstige Netzlaufwerke mittels net use in Deinem Skript und es wird tun.
Oder verwende gleich UNC Pfade.