swissbull
Goto Top

Robocopy RECYCLE.BIN

Hallo zusamen,

ich habe ein Robocopy Skript, der Kopiert daten von A - B.
Ich habe mit /XD Ordner ausgeschlossen inkl. "$RECYCLE.BIN" "System Volume Information" "RECYCLER"

/XD "XXX" "XXXX" "XXX" "$RECYCLE.BIN" "System Volume Information" "RECYCLER" /XO /FFT /E /COPY:DAT /R:2 /W:5 /LOG:$Logfile /NP /NFL /NDL /NJH

Die Ausschlüsse funktionieren alle bis auf "RECYCLER" die Versteckt RECYCLER Ordner versucht er andauert zu Kopieren!


Erhalte immer die gleiche Fehler!


2016/10/27 10:35:58 FEHLER 59 (0x0000003B) Quellverzeichnis wird Überprüft O:\$RECYCLE.BIN\S-1-5-21-1020028432-2091858131-3517228275-1124\
Unerwarteter Netzwerkfehler.

Das ist ein NetApp Freigabe, hat das etwas damit zu tun!

Gruss

Content-Key: 319266

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

Printed on: April 25, 2024 at 09:04 o'clock

Mitglied: 131301
131301 Oct 27, 2016 updated at 10:40:03 (UTC)
Goto Top
Verwende mal /ZB oder /B

Gruß
Member: Penny.Cilin
Penny.Cilin Oct 27, 2016 at 10:37:11 (UTC)
Goto Top
Hallo,

hast Du mal versucht die Ordner $RECYCLE.BIN RECYCLER ohne Anführungszeichen anzugeben?
Zweite Frage: Ist das Laufwerk O: ein gemapptes (verbundenes) Laufwerk?

Probiere doch mal die Parameter /L /TEE, und lasse es in der CLI (Command Line Interface := Eingabeaufforderung) laufen.
Somit simulierst Du den Kopiervorgang nur. Und schaust ob hier Fehler auftauchen.


Gruss Penny
Member: swissbull
swissbull Oct 27, 2016 at 11:50:57 (UTC)
Goto Top
Hallo,

wenn ich /ZB oder /B hinzufüge startet das Skript nicht einmal mehr.

/L und /TEE bringen auch nichts.

ja das Laufwerk O ist gemappt, ich habe auch mit der Freigabe getestet \\xxxx\xxxx hat auch nicht geklappt. Die Frage ist warum geht Robocopy überhaupt die Ordner kopieren. die andere schliesst er aus, warum das RECYCLER Ordner nicht.


Gruss
Mitglied: 131301
131301 Oct 27, 2016 updated at 11:53:09 (UTC)
Goto Top
wenn ich /ZB oder /B hinzufüge startet das Skript nicht einmal mehr.
Dann hast du keine Admin-Rechte bzw. Backup-Privilegien.

Seh dir dir Optionen dazu an robocopy /?
Mitglied: 131301
131301 Oct 27, 2016 updated at 12:07:21 (UTC)
Goto Top
Wichtige Frage:

Führst du das ganze zufällig in der Powershell aus ? Dann wäre mir klar warum das so nicht klappt face-wink, denn in Powershell ist ein Dollarzeichen mit folgenden Buchstaben eine Variable und wird "aufgelöst". Um das zu verhindern musst du entweder das Dollarzeichen durch einen Backtick escapen "`$RECYLE.BIN" oder stattdessen in 'Hochkommas' einschließen '$RECYLCE.BIN'
Member: swissbull
swissbull Oct 27, 2016 at 12:42:02 (UTC)
Goto Top
Hallo,

bitte um richtige Lösungen. Robocopy /? das kennt jeder. Trotzdem danke

Die Frage ist warum schliesst Robocopy alle Ordner aus nur die RECYCLER Ordner nicht!! Warum liest er diesen Ordner ein, alle andere werden ausgeschlossen. Ich verstehe das nicht.


Gruss
Mitglied: 131301
131301 Oct 27, 2016 at 12:45:53 (UTC)
Goto Top
Zitat von @swissbull:
Die Frage ist warum schliesst Robocopy alle Ordner aus nur die RECYCLER Ordner nicht!!
s. oben, in einer PS Konsole ist das Dollarzeichen "special".
Member: swissbull
swissbull Oct 27, 2016 at 13:03:21 (UTC)
Goto Top
Hallo,

Habe dies bereits getestet, geht auch nicht!
Mitglied: 131301
131301 Oct 27, 2016 updated at 13:05:14 (UTC)
Goto Top
Du hast noch immer nicht meine Frage beantwortet: In Powershell-Konsole oder nicht ?????
Nur immer sagen "geht nicht" bring hier keinem was.
Member: swissbull
swissbull Oct 27, 2016 updated at 13:11:45 (UTC)
Goto Top
Das ist das gesamter Robocopy Skript. Ja im Powershell-Konsole

/XD "\\gfmucapp075p.ps.gf\PLM_Labeldata\Data" "\\gfmucapp075p.ps.gf\PLM_Labeldata\lay" "\\gfmucapp075p.ps.gf\PLM_Labeldata\map" "\\gfmucapp075p.ps.gf\PLM_Labeldata\pics" "\\gfmucapp075p.ps.gf\PLM_Labeldata\test" '$RECYLCE.BIN' "`$RECYLE.BIN" "System Volume Information" "RECYCLER" /FFT /E /COPY:DAT /R:2 /W:5 /LOG:$Logfile /NP /NFL /NDL /NJH
Member: Penny.Cilin
Penny.Cilin Oct 27, 2016 at 13:33:00 (UTC)
Goto Top
Und warum führst Du Robocopy in der Powershellkonsole aus?
Was passiert, wenn Du den Robocopybefehl in der CLI (Commandline Interface ==> Eingabeaufforderung) ausführst?

Handelt es sich etwa um ein Powershellscript?
Wenn ja, was passiert vorher in dem Skript und warum das Powershellskript?

Warum geht nicht ein einfaches Batchskript?
Member: swissbull
swissbull Oct 27, 2016 at 13:49:10 (UTC)
Goto Top
Das ist das Skript


$SourceFolder = "\\gfmucapp075p.ps.gf\PLM_Labeldata"
$DestinationFolder = "C:\Test"
$Logfile = "C:\Test\log.txt"
$EmailFrom = "informatik.xxxxxx@xxxxxx.com"
$EmailTo = "xxxxxx@xxxxx.com"
$EmailBody = "XXXXX"
$EmailSubject = "Robocopy Results: Copy Purpose - Location to Location"
$SmtpServer = "smtp-xxxxxx"
$SMTPPort = "25"

  1. Change robocopy options as needed.
Robocopy $SourceFolder $DestinationFolder /XD "\\gfmucapp075p.ps.gf\PLM_Labeldata\Data" "\\gfmucapp075p.ps.gf\PLM_Labeldata\lay" "\\gfmucapp075p.ps.gf\PLM_Labeldata\map" "\\gfmucapp075p.ps.gf\PLM_Labeldata\pics" "\\gfmucapp075p.ps.gf\PLM_Labeldata\test" '$RECYLCE.BIN' "`$RECYLE.BIN" "System Volume Information" "RECYCLER" /FFT /E /COPY:DAT /R:2 /W:5 /LOG:$Logfile /NP /NFL /NDL /NJH

$a = Get-Content C:\Test\log.txt | Select-String 'Dateien:' -SimpleMatch
if ($a.ToString().Substring(21,10) -replace ' ','' -eq '0')
{
#echo "Keine Aenderung"
}
else
{
#echo "Änderung"
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
$SMTPClient.Send($Message)
}
Member: Penny.Cilin
Penny.Cilin Oct 27, 2016 updated at 14:02:05 (UTC)
Goto Top
OK, Du hast Mailfunktion im Skript.

Als simples Batch (ungetestet):
Set SourceFolder="\\gfmucapp075p.ps.gf\PLM_Labeldata"  
Set $DestinationFolder="C:\Test"  
Set Logfile="C:\Test\log.txt"  
Set Set EXCLDIR=$RECYCLE.BIN RECYCLER "System Volume Information"  

Robocopy "%SourceFolder%" "%DestinationFolder%" /XD "%EXCLDIR%"  \\gfmucapp075p.ps.gf\PLM_Labeldata\Data" "\\gfmucapp075p.ps.gf\PLM_Labeldata\lay" "\\gfmucapp075p.ps.gf\PLM_Labeldata\map" "\\gfmucapp075p.ps.gf\PLM_Labeldata\pics" "\\gfmucapp075p.ps.gf\PLM_Labeldata\test"  /FFT /E /COPY:DAT /R:2 /W:5 /LOG:$Logfile /NP /NFL /NDL /NJH  

OK, jetzt fehlt nur noch die Mailfunktion, dazu könntest Du dann Powershell nutzen.


Gruss Penny
Member: swissbull
swissbull Oct 27, 2016 at 14:10:03 (UTC)
Goto Top
Geht nicht

$SourceFolder = "\\gfmucapp075p.ps.gf\PLM_Labeldata"
$DestinationFolder = "C:\Test"
$Logfile = "C:\Test\log.txt"
$EXCLDIR = $RECYCLE.BIN RECYCLER "System Volume Information"
$EmailFrom = "informatik.xxxxxx@xxxxxx.com"
$EmailTo = "xxxxxx@xxxxx.com"
$EmailBody = "PLM Synbole änderung vorhanden"
$EmailSubject = "Robocopy Results: Copy Purpose - Location to Location"
$SmtpServer = "smtp-xxxxxx"
$SMTPPort = "25"

  1. Change robocopy options as needed.
Robocopy $SourceFolder $DestinationFolder $EXCLDIR /XD "\\gfmucapp075p.ps.gf\PLM_Labeldata\Data" "\\gfmucapp075p.ps.gf\PLM_Labeldata\lay" "\\gfmucapp075p.ps.gf\PLM_Labeldata\map" "\\gfmucapp075p.ps.gf\PLM_Labeldata\pics" "\\gfmucapp075p.ps.gf\PLM_Labeldata\test" '$RECYLCE.BIN' "`$RECYLE.BIN" "System Volume Information" "RECYCLER" /FFT /E /COPY:DAT /R:2 /W:5 /LOG:$Logfile /NP /NFL /NDL /NJH

$a = Get-Content C:\Test\log.txt | Select-String 'Dateien:' -SimpleMatch
if ($a.ToString().Substring(21,10) -replace ' ','' -eq '0')
{
#echo "Keine Aenderung"
}
else
{
#echo "Änderung"
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
$SMTPClient.Send($Message)
}
Mitglied: 131301
131301 Oct 27, 2016 updated at 14:41:05 (UTC)
Goto Top
Ganz einfach dein Fehler wie oben schon gesagt das Dollarzeichen mit Strings dahinter ist für Variablen reserviert.
Das beachtest du hier in dieser Zeile erneut nicht!!!
$EXCLDIR = $RECYCLE.BIN RECYCLER "System Volume Information"
Hier wird das $RECYCLE aufgelöst, und da es keine Variable mit dem Namen $RECYCLE gibt wird das zu einem leeren String und zu .BIN. Und außerdem ist die Zuweisungsformatierung in der Variablen $EXCLDIR falsch...zudem steht die auch an der völlig falschen Stelle im Command!

Außerdem musst du dich strikt an die Parameterangrenzung halten , in Powershell sollte man dazu soviele Parameter wie möglich in Anführungszeichen einschließen das es in der Powershell diverse Sonderzeichen wie z.B. der Dash sonst Probleme verursachen.

Robocopy "$SourceFolder" "$DestinationFolder" /XD "\\gfmucapp075p.ps.gf\PLM_Labeldata\Data" "\\gfmucapp075p.ps.gf\PLM_Labeldata\lay" "\\gfmucapp075p.ps.gf\PLM_Labeldata\map" "\\gfmucapp075p.ps.gf\PLM_Labeldata\pics" "\\gfmucapp075p.ps.gf\PLM_Labeldata\test" '$RECYLCE.BIN'  '"System Volume Information"' "RECYCLER" "/FFT" "/E" "/COPY:DAT" "/R:2" "/W:5" "/LOG:$Logfile" /NP /NFL /NDL /NJH  
Member: swissbull
swissbull Oct 27, 2016 at 14:51:47 (UTC)
Goto Top
Geht nicht

FEHLER: Ungültiger Parameter #3 : "/XD \\gfmucapp075p.ps.gf\PLM_Labeldata\Data \\gfmucapp075p.ps.gf\PLM_Labeldata\lay \\gfmucapp075p.ps.gf\PLM_Labeldata\map \\gf
mucapp075p.ps.gf\PLM_Labeldata\pics \\gfmucapp075p.ps.gf\PLM_Labeldata\test $RECYLCE.BIN System
Mitglied: 131301
Solution 131301 Oct 27, 2016 at 15:03:38 (UTC)
Goto Top
Doch hier geht's, deine Anführungszeichen sind immer noch falsch gesetzt ...
Member: swissbull
swissbull Oct 28, 2016 at 05:56:16 (UTC)
Goto Top
Guten Morgen,

und wie sollte es richtig sein!?
Member: swissbull
swissbull Oct 28, 2016 at 06:53:08 (UTC)
Goto Top
Es funktioniert

Die Lösung ist vor den, $RECYCLE.BIN keine " verwenden sonder nur ' ( "$RECYCLE.BIN" --> '$RECYCLE.BIN' )

Grüsse, Ich bedanke mich bei allen für die Hilfe face-smile
Member: emeriks
emeriks Oct 28, 2016 at 12:55:29 (UTC)
Goto Top
Hi,
und den Schreibfehler "$RECYLCE.BIN" hat hier überhaupt keiner bemerkt ...

E.
Member: swissbull
swissbull Oct 31, 2016 at 10:52:33 (UTC)
Goto Top
Hello,

ja stimmt, GRINS. Egal jetzt funktioniert es.

Grüsse