Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Genos
Junior Member
Junior Member
Posts: 4
Joined: 2024-06-23, 01:29 UTC

Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

Post by *Genos »

Hallo zusammen,

Mit Total Commander habe ich nun nach den Dateityprn gesucht die ich haben will.
Die Dateien sollen nun alle in einen Ordner kopiert werden.

An sich kein Problem, die Dateien werden angezeigt und ich kann sie markieren und in den gewünschten Ordner kopieren.

Folgendes Problem besteht aber nun:

Ich habe hin und wieder Dateien die den gleichen Namen haber ABER eine unterschiedliche Größe.

Zum Beispiel:

Dateiname: mendocin.mid
Größe: 74 KB

Davon habe ich ca. 50

Ich habe nun aber auch Dateien, die genauso heißen sprich

Dateiname: mendocin.mid - ABER in der
Größe: 80 KB oder 95 KB usw. sind.

Ist nur zu Veranschaulichung

TotalComander soll die Dateien nur dann ersetzen wenn die Datei den gleichen Namen UND Größe haben.

Sollte sich die Datei im Namen gleichen ABER
eine andere Größe haben, soll die Datei automatisch umbenannt werden.

Ich hoffe ich habe es verständlich erklären können.
Wünsche euch noch einen schönen Abend.
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

Post by *Stefan2 »

Probiere es mal so:

# Explanation:
# - store script as text file "COPY.ps1"

# - create an button as
# ------------------------------------------
# CMD PowerShell -noexit
# PARA 'c:\Progs\TotalCommander\Tools\CMDs\COPY.ps1' '%L' '%T'
# PATH <empty>
# ICON powershell
# TIP COPY.ps1 '%L' '%T'
# [x]As Symbol
# ------------------------------------------



# - choose the target folder

# - go to the other panel of TC (your source)
# - select your files (or search for it and select all)
# - execute this button

# - if all works file, you can remove "NEU" and also "-NoExit"


Code: Select all


# COPY.ps1

# Found at https://www.ghisler.ch/board/viewtopic.php?t=83270
# Dateien kopieren.  Falls eine bereits vorhanden ist, ersetze diese NUR bei gleichem Name und Größe (Inhalt egal!!!)
# Stefan 17:31 24.07.2024

# ###############################################

# SOURCE:  TCs temp list  due to TCs "%L"-parameter # Example: 'C:\Users\username\AppData\Local\Temp\CMDA3C.tmp'
$S=$Args[0]

# Target:  Target panel   due to TCs "%T"-parameter
$T=$Args[1]

# ###############################################

# Script:
# Rule:   copy to target and overwrite only if same name and same size
# Aktiviere NUR EINE Variante !

  Get-Content "$S" | ForEach{   $N=(GI $_).Name ; $L=(GI $_).Length ; 
  
  # Falls der Name bereits im Target existiert # Prüfe die Größe ob gleich 
      # Variante-1: Kopiere bei gleicher Größe, überspringe Vorhandene andere Dateien
      IF(Test-Path "$T$N"){  IF((GI "$T\$N").Length -eq $L){COPY $N "$T\$N NEU"}}  else{COPY "$N" "$T" }  }

      # Variante-2: Kopiere bei gleicher Größe, überschreibe auch die anderen Dateien anderer Größe
     # IF(Test-Path "$T$N"){  IF((GI "$T\$N").Length -eq $L){COPY $N "$T\$N NEU"}   else{COPY "$N" "$T" } }  } 

# /Script

# ###############################################

# Explanation:

#  - store script as text file "COPY.ps1"
  
#  - create an button as
#  ------------------------------------------
#  CMD   PowerShell -noexit
#  PARA  'c:\Progs\TotalCommander\Tools\CMDs\COPY.ps1' '%L' '%T'
#  PATH  <empty>
#  ICON  powershell
#  TIP   COPY.ps1 '%L' '%T'
#  [x]As Symbol
#  ------------------------------------------

# How to:

# - choose the target folder

# - go to the other panel of TC (your source)
#  - select your files (or search for it)

#  - execute this button

#  - if all works file, you can remove "NEU" and also "-NoExit"
#  

# EOF
# ###############################################






 
Genos
Junior Member
Junior Member
Posts: 4
Joined: 2024-06-23, 01:29 UTC

Re: Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

Post by *Genos »

@stefan

Hallo Stefan,
erstmal vielen Dank für deinen Beitrag.

Ich bin in dieser Sache was Powershell angeht absolut Neuling.
Was ich jetzt gemacht habe ist, dass ich den Code on Powersehll eingefügt habe.

Ichbin aber leider jetzt absolut planlos was die weitere Vorgehensweise ist.
Könntest du mir da evtl. behilflich sein?

Ich will mir hier nicht alles machen lassen und der code ist ja schon kopiert jedoch bräuchte ich jetzt eine kleine Anweisung wie ich weiter vorgehen muss.

Oder ist es jetzt so, dass ich eine weitere Option habe, wenn ich die Dateien in den anderen Ordner kopiere?
Also das ich eine Asuwahlmöglichkeit nach dem Code habe?

Sorry aber für mich ist dies eben absolutes Neuland

Ich danke dir nochmals.

Gruß
Jörg
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

Post by *Stefan2 »

Hi Jörg, was genau verstehst du nicht, steht doch alles da???

Oder kannst du kein Englisch und hast auch keinen online Übersetzer? >>>      DeepL
Und unsere FAQs aus meiner Signatur hast du dir auch nicht angeschaut? >>>   Wie einen Button erstellen?


Also, extra für dich noch einmal langsam....

- speichere den Code aus "CODE: SELECT ALL"
in einer Textdatei namens "COPY.ps1"
im TC-Ordner

- Erstelle einen neuen Button in der Buttonbar.
( siehe viewtopic.php?p=390697#p390697 )
-> Menü "Konfigurieren > Buttonbar ändern..."
-> Im "Buttonbar ändern"-Dialog, klicke auf [Anfügen], dann fülle ihn aus wie folgt:
------------------------------------------
Kommando: PowerShell -noexit
Parameter: 'c:\Dein Pfad zu\TotalCommander\COPY.ps1' '%L' '%T'
Startpfad: <leer lassen>
Icondatei: powershell
Tooltip : COPY.ps1 '%L' '%T'
------------------------------------------


- Erstelle ein Backup deiner Daten und versuche es erstmal mit einigen wenigen

- Wähle das Ziel aus

- Gehe ins andere TC-Fenster
- Wähle deine Dateien aus (oder suche nach ihnen)

- Klicke auf den neuen Button

- Die Dateien sollten wie gewünscht kopiert werden.
Bitte beachte, das Dateien mit selber Größe nicht unbedingt identisch sein müssen.

- Wenn alles funktioniert , kannst du das "NEU" aus dem Code entfernen, und auch das "-NoExit" kann dann weg.


Noch Fragen?


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

Re: Dateien kopieren / nur ersetzen wenn gleicher Name und Größe

Post by *Stefan2 »

Genos wrote: 2024-07-24, 16:53 UTC @stefan

Hat das Skript jetzt geholfen, oder nicht?





 
Post Reply