Robocopy integrieren

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
qwertz442000
New Member
New Member
Posts: 1
Joined: 2008-07-08, 16:57 UTC

Robocopy integrieren

Post by *qwertz442000 »

Hallo,

ich würde gerne Robocopy in den TC integrieren, so ähnlich wie F5 (Kopieren)

Danke
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3864
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Einfach die Forumsuche bemühen und nach "robocopy" suchen:
Drag&Drop handler for ROBOCOPY (or XXCOPY)!!
... ist zwar in Englisch, die Lösung ist aber deutlich zu erkennen.
#5767 Personal license
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Die /COPYALL Option in dem von sqa_wizard verlinkten Thread hatte bei mir Probleme gemacht.

Ich habe mir folgendes em_ Kommando erstellt, dass ich via Button oder Hotkey nutzen kann.

Code: Select all

[em_CopyWithRobocopy]
cmd=%ProgramFiles%\Windows Resource Kits\Tools\robocopy.exe
Param=%P %T %S /COPY:DAT /LOG:c:\temp\robocopy.log
Dieses Kommando erzeugt zusätzlich noch eine Log-Datei, in der man sieht, was Robocopy angestellt hat.
Dies ist gerade für das Einsatzfeld von Robocopy nicht ganz unwichtig.
Natürlich könnte man die Log-Datei auch variabler gestalten, zumal das Log immer wieder überschrieben wird. Mir reicht es jedoch so.
Räubi
(#2852 + #287609)
CoolWater
Power Member
Power Member
Posts: 737
Joined: 2003-03-27, 16:33 UTC

Post by *CoolWater »

falls jemand auch "gelockte" Dateien sichern möchte, der sollte sich hobocopy mal anschauen. Dieses Opensource-Tool benutzt den Volume Shadowing Service von Win2000/XP/Vista um auch solche Dateien sichern zu können. So funktionieren auch die meisten Backup-Programme.

DL-Link: http://sourceforge.net/project/showfiles.php?group_id=117783&package_id=204974+

Gruß
CoolWater
Rick69
Member
Member
Posts: 175
Joined: 2020-08-16, 03:55 UTC

Re: Robocopy integrieren

Post by *Rick69 »

Hallo
auch auf die Gefahr hin, das der Post schon alt ist und ich nichts weiter finden kann(Das Tema interesiert mich aus folgenden Grund: ich mochte über Total Commander und Robocopy Filme relativ schlell zu meiner NAS Kopieren (Vorzugsweise im Ordner mit Bildern))
Nun icg habe keine große Ahnubg vom CMD, aber ich habe es schon fertig gebacht Robocopy in TC einzubauen.
Es funktioniert auch , allerdings kann ich nur einen Ordner Kopieren und dessen inhalt landet auf dem anderen Laufwerk in einen angeegten Ordner.
Also das Kopieren mehrerer Odner auf ein anderes Laufwerk geht so nicht,

Nun meine 1. Frage was bedeutet " %P %T %S " ?das habe ich in der Robocopy-Anleitung nicht erfahren, aber ohne geht es auch nicht, also nur mi dem Befehl " /COPYALL "

Also nochmal meine Frage

mit welchen Parametern kann ic in TC mit dem Kommando "C:\Windows\System32\robocopy.exe " mehrere Ordner von Laufwerk A zur NAS B kopieren?

MfG rick
User avatar
Frizz
Member
Member
Posts: 162
Joined: 2011-06-18, 12:20 UTC

Re: Robocopy integrieren

Post by *Frizz »

User avatar
Horst.Epp
Power Member
Power Member
Posts: 6495
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Re: Robocopy integrieren

Post by *Horst.Epp »

Rick69 wrote: 2020-09-09, 12:23 UTC Hallo
auch auf die Gefahr hin, das der Post schon alt ist und ich nichts weiter finden kann(Das Tema interesiert mich aus folgenden Grund: ich mochte über Total Commander und Robocopy Filme relativ schlell zu meiner NAS Kopieren (Vorzugsweise im Ordner mit Bildern))
Nun icg habe keine große Ahnubg vom CMD, aber ich habe es schon fertig gebacht Robocopy in TC einzubauen.
Es funktioniert auch , allerdings kann ich nur einen Ordner Kopieren und dessen inhalt landet auf dem anderen Laufwerk in einen angeegten Ordner.
Also das Kopieren mehrerer Odner auf ein anderes Laufwerk geht so nicht,

Nun meine 1. Frage was bedeutet " %P %T %S " ?das habe ich in der Robocopy-Anleitung nicht erfahren, aber ohne geht es auch nicht, also nur mi dem Befehl " /COPYALL "

Also nochmal meine Frage

mit welchen Parametern kann ic in TC mit dem Kommando "C:\Windows\System32\robocopy.exe " mehrere Ordner von Laufwerk A zur NAS B kopieren?

MfG rick
Bei der Erstellung eine Buttons einfach mal die Hilfe bemühen.
Dann findest du etwas über z.B. %P %T %S usw.
Windows 11 Home x64 Version 23H2 (OS Build 22631.3527)
TC 11.03 x64 / x86
Everything 1.5.0.1373a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.73
QAP 11.6.3.2 x64
Rick69
Member
Member
Posts: 175
Joined: 2020-08-16, 03:55 UTC

Re: Robocopy integrieren

Post by *Rick69 »

Danke
Rick69
Member
Member
Posts: 175
Joined: 2020-08-16, 03:55 UTC

Re: Robocopy integrieren

Post by *Rick69 »

HalloAlles soweit gut.
Was muss ich machen um im Totalcommander mit dem Befehl Robocopy einen Ordner mit Inhalt und nicht nur den Inhalt copieren mochte?
Ich habe da noch nichts herrasbekommen.
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

FAQs: Kompletten Ordner kopieren Robocopy Xcopy PowerShell copy-item

Post by *Stefan2 »

EDIT

Robocopy kopiert nur die Dateien aus dem "Hauptordner" und von den Ordner nur die, welche darin als Unterordner sind.
Der "Hauptordner" wird im Ziel nicht erstellt. Zumindest habe ich dafür keine Option gefunden.
In dem weiter unten folgenden Post erstelle ich diesen "Hauptordner" im Ziel selbst "von Hand", oder verwende Xcopy und Powershell.






2Rick69
Rick69 wrote: 2020-09-11, 06:25 UTC Was muss ich machen um im Totalcommander mit dem Befehl Robocopy einen Ordner mit Inhalt und nicht nur den Inhalt copieren mochte?

Ich nehme mal an, dass man den Ordnernamen selbst als Parameter übergeben muss,
und nicht die darin enthaltenen Dateien.
Also nicht: Robocopy C:\test\*.*
sondern: Robocopy C:\test




Welchen Ordner möchtest du denn gerne kopieren?
a - einen bestimmten, fest "eingestellten"?
b - den Ordner, in welchem du in TC gerade bist?
c - den (oder die?) im TC ausgewählten Ordner? (markierte, selektierte)

Und wohin soll kopiert werden?
d- Einfach ins andere Panel (inaktives Fenster)?
Laut TC-Hilfe kann das mit "%T" (Target) erreicht werden.


- - -


Für "b" (den Ordner, in welchem du in TC gerade bist) kannst du den TC-Parameter %P verwenden.
Siehe Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern .." :
%P ...bewirkt, dass der Pfad des Quellverzeichnisses in die Kommandozeile gestellt wird (inkl. \ am Ende).

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO "%P"
STARTPFAD:
ICON: cmd.exe

Dieses %P musst du jetzt sinnvoll in die Kommandozeile von RoboCopy integrieren,
siehe oben den Link von Frizz oder unten die Beispiele.

- - -

Für "c" (den im TC ausgewählten Ordner) kannst du z.B. %P%N verwenden

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO %P%N
STARTPFAD:
ICON: cmd.exe

Oder %C

- - -

Für ein-oder-mehrere ausgewählte verwende %S, bzw. mit Pfad: %P%S
"""Bitte beachten Sie die maximal mögliche Länge der Kommandozeile: 32767 Zeichen."""

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO %P%S
STARTPFAD:
ICON: cmd.exe



Oder du baust eine Schleife, um jeden ausgewählten Ordner einzeln
an den Befehl zu übergeben (hier ohne Begrenzung der Länge wie bei %S)

Beispiel-Button:
Hier als MS-DOS Batchdatei, aber es geht auch mit PowerShell oder AutoHotkey oder Anderen.
KOMMANDO: cmd /k
PARAMETER: for /F "tokens=*" %%F in (' type "%L"') DO @ECHO "%%F"
STARTPFAD:
ICON: cmd.exe
((( %%F ist eine Variable der cmd.exe, %L eine Variable von TC, um alle Markierten in einer Textdatei festzuhalten, siehe Hilfe)))

Hier ist der Pfad in %%F und statt ECHO muss da die Kommandozeile von RoboCopy hin.


- - -

Ein Problem ist immer das korrekte Quoting (In Anführungszeichen setzen).
TC setzt bei manchen Parametern von sich aus Anführungszeichen, aber nur wenn er ein Leerzeichen im Pfad\Namen erkennt.

Für erste Tests verwende nur Pfade und Namen OHNE Leerzeichen.

- - -



Du kannst auch eine Batchdatei (oder PowerShell oder AutoHotkey oder...) verwenden,
welche die temporäre Datei hinter %F bzw. %L Zeile-für-Zeile abarbeitet:

KOMMANDO: "%Commander_Path%\MyBatch.cmd"
PARAMETER: "%L"
STARTPFAD:
ICON: C:\Windows\System32\imageres.dll

MyBatch.cmd:

Code: Select all

@ECHO OFF 
REM Command:   path\to\this\batch.cmd
REM Parameter: "%L"   (see TC help for more)
for /f "delims=" %%L in ('type "%1" ') do (
    REM For Each Line (=File) in temp file DO:
    REM (modify this part for your task)
    ECHO Processing "%%L"
    ECHO Drive: %%~dL
    ECHO PATH: "%%~dpL"
    ECHO NAME: %%~nxL
    ECHO BASE: %%~nL
    ECHO EXTe: %%~xL
    ECHO File %%~nxL done. Go to next...
ECHO ******************************************
)
ECHO.
ECHO All Done!
PAUSE

Hier müsstest du zwischen "do (...)" mittels "%%~dpL" deinen RoboCopy-Befehl aufbauen:
for /f "delims=" %%L in ('type "%1" ') do ( @ECHO robocopy "%%~dpL" )




Mach' dich vielleicht erstmal mit diesem Grundkonzept vertraut...








Laut Link von Frizz ist die Syntax von RoboCopy wie folgt:
Robocopy <Quelle> <Ziel> [< Datei(en)>] [< Option>]

Also für den TC zB
Robocopy "%P" "%T"

Als Button
KOMMANDO: Robocopy
PARAMETER: "%P" "%T"
STARTPFAD:
ICON: Robocopy


Falls RoboCopy bei dir "nicht im Pfad" liegt, ergänze den Befehl "RoboCopy" um den Pfad zur Robocopy.exe
KOMMANDO: "C:\Tools\Kopie\Robocopy.exe"
PARAMETER: "%P" "%T"
STARTPFAD:
ICON: "C:\Tools\Kopie\Robocopy.exe"



Für mehrere Ordner verwende mal
KOMMANDO: cmd /k
PARAMETER: for /F "tokens=*" %%F in (' type "%L"') DO @ROBOCOPY "%%F" "%T"


---


Bei Bedarf noch die < Datei(en)> näher spezifizieren und/oder ein paar <Option> angeben.

Siehe oben den Link zur Hilfe:
https://www.tecchannel.de/a/robocopy-daten-schnell-und-einfach-unter-windows-sichern,2033515,2
Platzhalter sind erlaubt.
Wenn Sie keine Dateien oder Platzhalter eingeben,
verwendet Robocopy standardmäßig (*.*), kopiert also alle Dateien.


 
Rick69
Member
Member
Posts: 175
Joined: 2020-08-16, 03:55 UTC

Re: Robocopy integrieren

Post by *Rick69 »

Eigentlich wolte ich mir eine Button in TC basteln, um von einer angeschlossenen Festplatte "volle Ordner" auf eine im Netzwerk befindliche NAS kopieren.
Nun habe ich mir einen Button gemacht mit dem Kommando "C:\Windows\System32\Robocopy.exe" und den Parametern "%P%N %T /dcopy:T".
Jetzt dachte ich das Laufwerk a amPC und Laufwerk B "NAS" mit dem Button zum kopieren kommen,
Wenn das Kopieren Klappt, wird aber nicht der Ordner sondern nur die Daten kopiert.

mfg Rick
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

FAQs: Kompletten Ordner kopieren Robocopy Xcopy PowerShell copy-item

Post by *Stefan2 »

Ich habe mich mal etwas weiter eingelesen (sprich: gegoogelt)

Den Ordner selbst mit zukopieren ist bei Robocopy nicht vorgesehen,
zumindest macht er es nicht und ich habe keinen Schalter (Option) dafür gefunden.

Dann erstellen wir den Ordner eben vorher selbst:

KOMMANDO: cmd.exe /K
PARAMETER: MD %T%N & Robocopy %P%N %T%N /E
STARTPFAD:
ICON: Robocopy.exe
TOOLTIP: Kopiere Ordner mit seinem Inhalt in das andere Panel


MD ist ein DOS interner Befehl "Make Dir" (erstelle Verzeichnis)
Für %P, %N und %T siehe TC-Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern ..".
Hilfe zur cmd.exe in einer DOS-Box (cmd) mittels Befehl cmd /?
/E ist ein Parameter von RoboCopy.
Hilfe zur RoboCopy.exe in einer DOS-Box (cmd) mittels Befehl RoboCopy /?

In diesem Einzeiler kann man schlecht eine Fehlerkorrektur (zum Beispiel der Ordner besteht bereits) einbauen,
dazu müssten wir im KOMMANDO ein externes Skript aufrufen, in welchem wir genügent Platz für entsprechenden Programmcode haben.







Wieso benötigst du RoboCopy? Verwendest du die Vorteile von robocopy?
Ansonsten kannst du das auch etwas einfacher mit XCOPY erledigen:


Hilfe zur XCOPY.exe in einer DOS-Box (cmd) mittels Befehl XCOPY /?

XCOPY Quelle [Ziel] [Optionen]


KOMMANDO: cmd.exe /K
PARAMETER: XCOPY %P%N %T%N /K/R/E/I/S/C/H
STARTPFAD:
ICON: wcmicons.dll
TOOLTIP: Kopiere Ordner mit seinem Inhalt in das andere Panel






Um einen oder mehrere ausgewählte Ordner zu kopieren verwende zB PowerShell

(((Bei der Verwendung von RoboCopy über TC habe ich Probleme mit dem korrekten Quoting "..." in einer FOR-Schleife)))


KOMMANDO: PowerShell -NoExit
PARAMETER: Get-Content '%F' | ForEach{ COPY $_ '%T' -recurse }
STARTPFAD:
ICON: PowerShell




Für %F und %T siehe TC-Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern ..".
%F und %T sind in einfachen Anführungszeichen '...' gequoted: ' %F '

Für Hilfe zu Powershells-"COPY" verwende in einer Powershell-Konsole den Befehl: HELP copy-item -FULL



 HTH? :D
Rick69
Member
Member
Posts: 175
Joined: 2020-08-16, 03:55 UTC

Re: Robocopy integrieren

Post by *Rick69 »

Hallo
Der Hintergrund ist , das mann mir sagte, das Robocopy schneller kopieren würde als Windows.
Also möchte ich gerne ein oder mehere Filme von meinen (PC mit externer Festplatte) zur NAS kopieren(schnellstmoglich )
Der Kopiervorgang geht über ein 1000er-Netzwerk (Fritzbox DHCP) an dem die NAS und der PC angeschlossen sind.
Nun denke ich da Windows langsamer als Robocopy kopiert.

Des wegen beschäftige ich mich damit
Post Reply