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

Ausgedruckt am: 19.03.2024 um 11:03 Uhr

Mitglied: 131301
131301 27.10.2016 aktualisiert um 12:40:03 Uhr
Goto Top
Verwende mal /ZB oder /B

Gruß
Mitglied: Penny.Cilin
Penny.Cilin 27.10.2016 um 12:37:11 Uhr
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
Mitglied: swissbull
swissbull 27.10.2016 um 13:50:57 Uhr
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 27.10.2016 aktualisiert um 13:53:09 Uhr
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 27.10.2016 aktualisiert um 14:07:21 Uhr
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'
Mitglied: swissbull
swissbull 27.10.2016 um 14:42:02 Uhr
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 27.10.2016 um 14:45:53 Uhr
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".
Mitglied: swissbull
swissbull 27.10.2016 um 15:03:21 Uhr
Goto Top
Hallo,

Habe dies bereits getestet, geht auch nicht!
Mitglied: 131301
131301 27.10.2016 aktualisiert um 15:05:14 Uhr
Goto Top
Du hast noch immer nicht meine Frage beantwortet: In Powershell-Konsole oder nicht ?????
Nur immer sagen "geht nicht" bring hier keinem was.
Mitglied: swissbull
swissbull 27.10.2016 aktualisiert um 15:11:45 Uhr
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
Mitglied: Penny.Cilin
Penny.Cilin 27.10.2016 um 15:33:00 Uhr
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?
Mitglied: swissbull
swissbull 27.10.2016 um 15:49:10 Uhr
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)
}
Mitglied: Penny.Cilin
Penny.Cilin 27.10.2016 aktualisiert um 16:02:05 Uhr
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
Mitglied: swissbull
swissbull 27.10.2016 um 16:10:03 Uhr
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 27.10.2016 aktualisiert um 16:41:05 Uhr
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  
Mitglied: swissbull
swissbull 27.10.2016 um 16:51:47 Uhr
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
Lösung 131301 27.10.2016 um 17:03:38 Uhr
Goto Top
Doch hier geht's, deine Anführungszeichen sind immer noch falsch gesetzt ...
Mitglied: swissbull
swissbull 28.10.2016 um 07:56:16 Uhr
Goto Top
Guten Morgen,

und wie sollte es richtig sein!?
Mitglied: swissbull
swissbull 28.10.2016 um 08:53:08 Uhr
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
Mitglied: emeriks
emeriks 28.10.2016 um 14:55:29 Uhr
Goto Top
Hi,
und den Schreibfehler "$RECYLCE.BIN" hat hier überhaupt keiner bemerkt ...

E.
Mitglied: swissbull
swissbull 31.10.2016 um 11:52:33 Uhr
Goto Top
Hello,

ja stimmt, GRINS. Egal jetzt funktioniert es.

Grüsse