vergleichen nach dateinnamen, nicht nach inhalt

German support forum

Moderators: Hacker, Stefan2, white

Gregorius007
Junior Member
Junior Member
Posts: 68
Joined: 2003-05-14, 10:01 UTC
Location: kirchseeon

vergleichen nach dateinnamen, nicht nach inhalt

Post by *Gregorius007 »

hallo,

da ich viel mit bildern (von der digi-cam) zu tun habe, sind bei mir in der letzten zeit folgende fragen aufgetreten:

- ich habe ein verzeichnis, in dem ich meine bilder ablege (z.b. img_0001.jpg, img_0002.jpg, ...). dann habe ich ein verzeichnis, in dem ich die verkleinerten versionen der bilder ablege, die ich z.b. per mail verschicke:
00_kleiner\img_0001.jpg,
00_kleiner\img_0002.jpg,
00_kleiner\img_0003.jpg, usw.

es ist oft so, daß ich erstmals nur eine untermenge vom hauptverzeichnis verkleinert habe, ich aber nachträglich dorthin bilder reinkopiere.

dann möchte ich nur die bilder rausfiltern, von denen ich noch keine verkleinerte kopie im verzeichnis \00_kleiner habe. ich möchte also die zwei vergleichnisse vergleichen, aber nicht nach inhalt, sondern nach dateinamen. als ergebnis sollten dann die dateinamen im hauptverzeichnis markiert sein (übrig bleiben) - evtl. nach "auswahl umkehren" - von denen es keine entsprechende datei im \00_kleiner-verzeichnis gibt (ist es eigentlich klar beschrieben, was ich möchte?). diese restlichen dateien möchte ich dann mit einem extra tool verkleinern (an das tool übergeben).

wie mache ich sowas?


zweite frage:

im hauptverzeichnis mache ich oft nach der bildbearbeitung (z.b. rote augen entfernen, aufhellen,...) eine kopie von der hauptdatei - also z.b. img_0001_kopie.jpg

ich möchte alle dateien markiert haben, von denen ich eine kopie habe, um sie in ein anderes verzeichnis (z.b. "orig") zu verschieben. wie mache ich das? gibt's dazu funktionien im TC? oder plug-ins? zur zeit markiere ich alles zu fuß, aber das macht bei z.b. 200 dateien, von denen lediglich 40 eine kopie haben, nicht richtig viel spaß. vor allem, weil das immer wieder kommt...

danke im voraus für eure ideen.
--
grüße
gregor
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

1. Im Synctool doppelte Dateien ab(!)wählen, synchronisieren und dann den Zielpfad ändern, dann hast Du alle einfach vorhandenen Dateien in einem neuen Verzeichnis.

2. Wenn Du bei den Originaldateien nicht den Namen änderst sondern lediglich die Erweiterung, sie also als .bak speicherst, kannst Du das AutoHotKey-Script nutzen, das ich hier kreiert habe:
http://www.ghisler.ch/board/viewtopic.php?t=8309

Markieren geht dann in zwei Schritten:
1. Alle Dateien mit .bak-Endung auswählen per Numpad+ => *.bak
2. Shift-Alt-Numpad+ drücken

Edit: Sorry, is zu lange her das Script, so funktioniert's leider doch nicht. Du mußt jede .bak-Datei einzeln anwählen und dann per Shift-Alt+Numpad+ die korrespondieren Dateien hinzufügen.
Bei Interesse setze ich mich vielleicht hin und schreib's so um, daß es "in einem Rutsch" funktioniert.

Icfu
Last edited by icfu on 2006-01-06, 22:59 UTC, edited 2 times in total.
This account is for sale
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Vielleicht reicht auch nur Umsch-F2.

HTH
Roman
Last edited by Hacker on 2006-01-07, 00:25 UTC, edited 1 time in total.
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Wie meinen?

Icfu
This account is for sale
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Vielleicht hilft auxh Strg+Alt+Umschalt+W - kommt ganz drauf an, was sich dahinter für ein Befehl verbirgt. :mrgreen:
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Ich brauche wohl Nachhilfe in Kryptographie.

Icfu
This account is for sale
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

:oops: 'tschuldigung, haette Umsch-F2 heissen sollen. Ist schon korrigiert.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Gregorius007
Junior Member
Junior Member
Posts: 68
Joined: 2003-05-14, 10:01 UTC
Location: kirchseeon

Post by *Gregorius007 »

hallo,

danke für die antworten.

1) wo finde ich das synctool? ist es bestandteil vom TC? oder ein plug-in? oder externes tool?

2)shift-F2 geht ja nicht, weil der TC hier alle dateien markiert, die unterschiedliche inhalte (beim gleichen namen) haben. das habe ich ja schon probiert, deshalb habe ich gesagt, daß der inhalt beim vergleichen NICHT berücksichtigt werden soll, sondern lediglich der dateiname.

was teilweise gehen würde, ist folgendes: beide verzeichnisse mit dir>>liste1.txt in eine textdatei umleiten, dann z.b. mit ultraedit oder TC vergleichen und die zeilen, die gleich sind, rauslöschen. aber das ist auch irgendwie umständlich...

gibt's evtl. ein plugin, bei dem ich doppelte dateien suchen kann? evtl. könnte ich damit nach den ersten x-zeichen im dateinahmen filtern und somit meine auswahl treffen? (also z.b. suche alle doppelte dateien in einem directory, bei denen die ersten 8 zeichen gleich sind, oder so ähnlich).

noch weitere vorschläge?
--
grüße
gregor
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

wo finde ich das synctool?
Befehle-Verzeichnisse synchronisieren oder auch cm_FileSync.
noch weitere vorschläge?
Da Du auf "den weiteren Vorschlag" meinerseits nicht im entferntesten eingegangen bist, verabschiede ich mich hier. Wer nicht will, der hat schon. ;)

Icfu
This account is for sale
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Gregorius007,
shift-F2 geht ja nicht, weil der TC hier alle dateien markiert, die unterschiedliche inhalte (beim gleichen namen) haben.
Erstens stimmt das nicht so genau, und zweitens markiert er sie nur auf einer Seite (die neueren).

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
van Dusen
Power Member
Power Member
Posts: 684
Joined: 2004-09-16, 19:30 UTC
Location: Sinzig (Rhein), Germany

Post by *van Dusen »

2Gregorius007

Zur zweiten Frage:

Du kannst auch das Inhalts-Plugin ScriptWDX benutzen, um zu prüfen, ob eine Kopie einer Datei vorhanden ist und ob diese Kopie noch aktuell ist. Hier ein vbs-Script, welches Dir für "Kopien" (das sind Dateien, die ins Namensschema *_kopie.* passen) und für "Originale" (das sind alle anderen Dateien) als Resultat je drei verschiedene Status liefert:

Code: Select all

Dim fso, fIst, fSoll
Set fso = CreateObject("Scripting.FileSystemObject")
Set fIst = fso.GetFile(filename)

sBaseIst = lcase(fso.GetBaseName(filename))
sExtIst = lcase(fso.GetExtensionName(filename))
sDateModfIst = fIst.DateLastModified
Const ForReading = 1

If Right(sBaseIst, 6) = "_kopie" Then
   sDateiIstKopie = 1
   sOri = Mid(sBaseIst, 1, Len(sBaseIst) - 6) & "." & sExtIst

Else
   sDateiIstKopie = 0
   sBak = sBaseIst & "_kopie." & sExtIst

End If

'*** Aktuelle Datei ist Kopie
If sDateiIstKopie = 1 Then

   '*** Wenn Original vorhanden, 'Datum letzte Änderung' abgleichen...
   If fso.FileExists(sOri) Then
      Set fSoll = fso.GetFile(sOri)
      sTimeDiff = DateDiff("n", sDateModfIst, fSoll.DateLastModified)

      '*** Kopie gilt als aktuell, wenn sie gleich alt wie / neuer als das Original ist
      If sTimeDiff <= 0 Then
         sResult = "1 (BAK): Diese Kopie ist aktuell"

      Else
         sResult = "2 (BAK): Diese Kopie ist veraltet, neues Original vorhanden"
         sResult = sResult & " (" & sTimeDiff & " Min.)"

      End If

   '*** Wenn Original fehlt...
   Else
      sResult = "3 (BAK): Original fehlt"

   End If

'*** Aktuelle Datei ist Original
Else

   '*** Wenn Kopie vorhanden, 'Datum letzte Änderung' abgleichen...
   If fso.FileExists(sBak) Then
      Set fSoll = fso.GetFile(sBak)
      sTimeDiff = DateDiff("n", sDateModfIst, fSoll.DateLastModified)

      '*** Kopie gilt als aktuell, wenn sie gleich alt wie / neuer als das Original ist
      If sTimeDiff >= 0 Then
         sResult = "1 (ORI): Kopie dieser Datei ist vorhanden und aktuell"

      Else
         sResult = "2 (ORI): Kopie dieser Datei ist veraltet"
         sResult = sResult & " (" & sTimeDiff & " Min.)"

      End If

   '*** Wenn Kopie fehlt...
   Else
      sResult = "3 (ORI): Kopie fehlt"

   End If

End If

content = sResult

Set fso=nothing
Set fIst=nothing
Set fSoll=nothing
Speichere dieses Script unter dem Namen <check_kopie.vbs> im Verzeichnis des ScriptWDX-Plugins ab.


Vergiss nicht, die <SCRIPT.INI> des Plugins anzupassen:

Code: Select all

[Script]
Section=check_kopie

[Defaults]
LongName=1
ParseDirs=0

[check_kopie]
Script=check_kopie.vbs
LongName=1

Und zu guter letzt musst Du natürlich eine benutzerdefinierte Spalte mit dem Feldinhalt "[=script.Result]" definieren und anzeigen lassen.
Gregorius007
Junior Member
Junior Member
Posts: 68
Joined: 2003-05-14, 10:01 UTC
Location: kirchseeon

Post by *Gregorius007 »

danke für die antworten.

zum vorschlag vom icfu:

> 1. Im Synctool doppelte Dateien ab(!)wählen, synchronisieren und dann den Zielpfad ändern, dann hast Du alle einfach vorhandenen Dateien in einem neuen Verzeichnis.


ich habe es ausprobiert, es liefert erstmals wirklich die differenz zwischen den beiden directories, allerdings muß ich, wie du geschrieben hast, den umweg mit kopieren ins andere verzeichnis nehmen. ich werde mal schauen, ob ich eine andere alternative finde. ich möchte die auswahl an ein anderes programm übergeben.

zum zweiten vorschlag hast du ja selbst geschrieben: "...Du mußt jede .bak-Datei einzeln anwählen..." - da brauche ich kein skript. wenn ich sie zu fuß ausgewählt habe, dann kann ich sie ja direkt verschieben.


zur aussage vom "hacker":
"Erstens stimmt das nicht so genau, und zweitens markiert er sie nur auf einer Seite (die neueren)."

bei mir werden mit sift-F2 links und rechts alle dateien markiert.

zum vorschlag vom van Dusen:

ich werde versuchen, deinen vorschlag nachzuvollziehen. danke auch.
--
grüße
gregor
Gregorius007
Junior Member
Junior Member
Posts: 68
Joined: 2003-05-14, 10:01 UTC
Location: kirchseeon

Post by *Gregorius007 »

zum VBS plugin:

ich habe mir das plugin runtergezogen und es installiert.
ich habe den VBS-code in das gleiche verzeichnis

WINCMD\plugins\wdx\script\ als check_kopie.vbs abgelegt.

ich habe die script.ini um den eintrag erweitert - allerdings kommt beim anschauen (F3) die meldung, daß "section [Script] already exist".

dann habe ich natürlich eine benutzerdefinierte spalte (rechte maustaste auf die zeile mit name, erw.,... -> benutzerdefinierte spalten konfigurieren -> dann einen namen eingetragen und unter feldinhalt "[=script.Result]" eingetragen.) erstellt.

wenn ich dann diese ansicht wähle, passiert nichts: ich habe die files mit name + erweiterung, die nächste spalte (=VBS-skript) ist leer.

auch, wenn ich den skript per such-funktion alt-F7 -> plugins register -> suche in plugins wähle, findet er nichts.

bräuchte tips, ob ich es richtig konfiguriert habe und wie ich es aufrufen kann.

danke!

übrigens: ext.vbs funktioniert bei HTML dateien: da sehe ich den titel der html-datei ("Show title for htm, html files").

noch was anderes: wie kann ich die files markieren, die per skript "bearbeitet" wurden? oder werden sie automatisch markiert?
Last edited by Gregorius007 on 2006-01-07, 20:14 UTC, edited 1 time in total.
--
grüße
gregor
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Gregorius007,
bei mir werden mit sift-F2 links und rechts alle dateien markiert.
Und haben die Dateien auch wirklich denselben Namen? Bei mir werden nur die neueren markiert.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
van Dusen
Power Member
Power Member
Posts: 684
Joined: 2004-09-16, 19:30 UTC
Location: Sinzig (Rhein), Germany

Post by *van Dusen »

Gregorius007 wrote:zum VBS plugin:
[...]
ich habe die script.ini um den eintrag erweitert - allerdings kommt beim anschauen (F3) die meldung, daß "section [Script] already exist".
Das verstehe ich nicht: Du bekommst eine derartige Meldung, sobald Du die <script.ini> mit dem Dateibetrachter anschaust, der mit <F3> aufgerufen wird? Ich vermute, dass da ein Browser oder Lister-Plugin aktiv wird, welches eine Plausiprüfung für INI-Dateien durchführt.

Wie dem auch sei: ich vermute, dass der Abschnitt "[Script]" nun doppelt in der <script.ini> enthalten ist... hast Du die o.g. INI-Beschreibung vielleicht einfach in die <script.ini> kopiert?

Jeder Abschnitt darf jeweils nur einmal vorhanden sein, also auch "[Script]" und "[Defaults]". Am einfachsten wäre es, wenn Du die Original-script.ini einfach komplett mit o.g. Inhalt überschreibst (vorher bei Bedarf Sicherungskopie der <script.ini> machen - oder bei Bedarf aus dem Plugin-Installations-RAR zotteln).

Dann sollte hoffentlich alles funktionieren.

Gregorius007 wrote:noch was anderes: wie kann ich die files markieren, die per skript "bearbeitet" wurden? oder werden sie automatisch markiert?
Nein, durch das Script wird nichts automatisch markiert. Es liefert lediglich die Status für die Ergebnisspalte:

Für "Kopien" (also Dateien des Musters {name}_kopie.{extension}):

1 (BAK): Diese Kopie ist aktuell
2 (BAK): Diese Kopie ist veraltet, neues Original vorhanden (n Min.)
3 (BAK): Original fehlt

Für "Originale" (also alle anderen Dateien {name}.{extension}):

1 (ORI): Kopie dieser Datei ist vorhanden und aktuell
2 (ORI): Kopie dieser Datei ist veraltet (n Min.)
3 (ORI): Kopie fehlt

Zusammengehörige Paare Original/Kopie erkennt das Script an identischen Dateinamensteilen {name} und {extension}.

Du kannst nun die Ergebnisspalte sortieren, dann stehen alle Dateien mit Status

1 (ORI): Kopie dieser Datei ist vorhanden und aktuell

(diesen Status bekommen alle Dateien, die Du verschieben möchtest) in einem Block lückenlos untereinander. Das Script vereinfacht also lediglich das Markieren. Markieren und Verschieben musst Du selbst, sorry :(


Um sicherzugehen, dass die vom Script gelieferten Ergebnisse korrekt aktualisiert sind, empfehle ich Dir, nach dem Wechsel zu der Spaltenansicht mit dem Script-Ergebnis zwei Verzeichniswechsel durchführen: einmal raus und gleich wieder rein in das zu bearbeitende Verzeichnis.
Post Reply