WatchDirectory home page
WatchDirectory Startseite (Deutsche Version)
Site WatchDirectory (Français)
  Welcome, Guest. Please Login or Register
YaBB - Yet another Bulletin Board
   
  HomeHelpSearchLoginRegister  
 
Page Index Toggle Pages: 1
bei Duplicate einer Datei, Action ausführen ... (Read 6995 times)
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
bei Duplicate einer Datei, Action ausführen ...
Nov 2nd, 2009 at 10:43am
 
Hallo @All

ich suche eine Lösung, wo bei vorhanden sein einer Datei(en) / Verzeichnis eine Meldung oder einfach nur eine Dupe.txt angezeigt/angelegt wird.

Hauptordner "-=)(- Download's -)(=-"
darin befindliche Unterordner,


- " -=)(- Download's -)(=- "   <-- Hauptordner

  -     " -=)(- Downloads_Eingang -)(=- "  <-- Unterordner aller Eingänge bevor es ins Archiv einsortiert wird. welches ich mit WD überwache.
  -     " -=)(- Archiv -)(=- "                      <-- Unterordner aller Dateien einsortiert abgelegt, Archiviert wird.


nun möchte ich gern den " -=)(- Downloads_Eingang -)(=- " mit dem  " -=)(- Archiv -)(=- " auf Duplikate überprüfen lassen, bevor er mir die Datei(en) ins " Archiv " ein sortiert.


gibt es da eine Lösung in der Art wie es die Tools mittels FTP Upload "Dupe" überprüft/und in eine Datenbank abgelegt wird.


mfG Mario
Back to top
 
 
IP Logged
 
Dirk
YaBB Administrator
*****
Offline



Posts: 658
South Germany
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #1 - Nov 2nd, 2009 at 8:06pm
 
Hallo Mario,

ein Plugin dafür gibt es nicht, mithilfe eines Scriptes sollte es aber gehen.

Scriptablauf:
Beim Erkennen einer Datei im Hauptordner wird der Unterordner eingelesen und alle Dateinamen in ein txt-File geschrieben. Dann wird überprüft, ob der Dateiname der erkannten Datei in der Liste steht, wenn ja -> Duplikat.

Damit findest Du zumindest gleichlautende Dateinamen, was nicht 100% "Duplikat" ist.

Wenn Dir der Ansatz reicht, kann ich Dir einigen Scriptansätze geben, die Du weiterentwickeln kannst. Gib Bescheid.
Back to top
 

Viele Grüße / Best regards
Dirk - GdP Software

dirk [at] gdpsoftware [dot] com
http://blog-de.gdpsoftware.com
Webseite: http://www.gdpsoftware.com
WWW WWW  
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #2 - Nov 3rd, 2009 at 9:30am
 
Hi Dirk

Klar doch würde mich Freuen, genau danach suche ich.

wo anhand einer liste überprüft wird, ob vorhanden dann soll er mir das anzeigen das es ein dup. ist habe da schon so was in der Art mit BeCyDialog.exe gelöst, wenn nicht dann soll er es in die Datenbank mit aufnehmen, und wenn es gelöscht wird wieder aus der Datenbank gelöscht wird, geht das ?


meine Kenntnisse sind da eher lau was Batches angeht. werde ich demnächst mal in Angriff nehmen.



mfG Mario
Back to top
 
 
IP Logged
 
Dirk
YaBB Administrator
*****
Offline



Posts: 658
South Germany
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #3 - Nov 3rd, 2009 at 10:25am
 
Hallo Mario,

das mit der Aufnahme in eine Datenbank must Du selbst hinbekommen, den Rest kannst Du mit diesem Script erledigen:
(passe die Variable für das Archivverzeichis an und definiere die Aktion "wenn Duplikat gefunden" bzw "wenn kein Duplikat gefunden")

Das Script überprüft den kompletten Dateinamen mit Dateierweiterung und schreibt eine Dateiliste nach %temp%\archivelist.txt. Starte das Script mit dem Plugin ".bat-Datei ausführen"; das Script muss aus watchDirectory heraus aufgerufen werden, sonst geht es nicht.

Bei Dateinamen mit deutschen Sonderzeichen (üö etc) kann es Problemen kommen, da musst Du evt. etwas mit der Codepage rumprobieren. Die Codepagedefinition befindet sich im Befehl "chcp=850", Infos zu Codepages hier: http://technet.microsoft.com/en-us/library/bb490874.aspx
bzw. hier: http://www.uwe-sieber.de/codepage.html

Starte die watchDirectory-Aufgabe zunächst(!) "manuell" (nicht als Dienst) und lasse das Ausführungsfenster sichtbar, dann siehst Du die Ausgabe des Scriptes direkt.


Code:
@echo off
REM check for duplicates
REM set codepage to support german chars
chcp 850
REM set variables
set check_dir="c:\ -=)(- Archiv -)(=- "

REM read existing files
dir /B %check_dir% >%temp%\archivelist.txt

REM check if file is in list
FINDSTR /L /I /C:"%WD_FILE_N%" "%temp%\archivelist.txt"
if %errorlevel% equ 0 goto :duplicate

REM take aktion here if there IS NO duplicate
echo "%WD_FILE_N%" has no duplicate in %check_dir%
GOTO :EOF

:duplicate
REM take aktion here if there IS A duplicate
echo "%WD_FILE_N%" has a duplicate in %check_dir%
 

Back to top
« Last Edit: Nov 3rd, 2009 at 1:39pm by Dirk »  

Viele Grüße / Best regards
Dirk - GdP Software

dirk [at] gdpsoftware [dot] com
http://blog-de.gdpsoftware.com
Webseite: http://www.gdpsoftware.com
WWW WWW  
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #4 - Nov 3rd, 2009 at 12:36pm
 
Hi Dirk,

Danke dir für das Script.

habe es natürlich auch gleich getestet, aber leider kommt da eine Fehlermeldung :

FINDSTR: D:\archivelist.txt kann nicht geöffnet werden.    habe es auf D:\ abgeändert im TEMP kommt der selbe Fehler was kann das sein

- Nachtrag -
habe den fehler gefunden jetzt kann er die datei finden b.z.w. lesen

archivelist.txt  =  archivlist.txt  ohne "e" ^^

mfg Mario
Back to top
 
 
IP Logged
 
Dirk
YaBB Administrator
*****
Offline



Posts: 658
South Germany
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #5 - Nov 3rd, 2009 at 1:03pm
 
Hi Mario,

ja, sorry, war ein Schreibfehler...
Entweder 2x mit "e" oder 2x ohne oder ein ganz anderer Listenname.

[edit by Dirk:
Schreibfehler im Script oben ist korrigiert]
Back to top
 

Viele Grüße / Best regards
Dirk - GdP Software

dirk [at] gdpsoftware [dot] com
http://blog-de.gdpsoftware.com
Webseite: http://www.gdpsoftware.com
WWW WWW  
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #6 - Nov 3rd, 2009 at 1:25pm
 
Hi Dirk,

kein Problem, es funktioniert einwandfrei also Besten Dank für die schnelle Hilfe und Funktionierende Script.

kann sein das ich nochmal deine Hilfe brauche.

aber vorerst, Danke nochmal für deine Hilfe.


mfG Mario
Back to top
 
 
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #7 - Nov 9th, 2009 at 1:20pm
 
Hallo Dirk,

irgendwie funktioniert das nicht wirklich.

habe es ein wenig abgeändert , das er anhand einer schon vorhandenen Liste Überprüfen soll.



@echo off
REM check for duplicates
REM set codepage to support german chars
chcp 850
REM set variables
REM set check_dir="G:\-=)(- DoWnLoAd's -)(=-"
set dialog=becydialog -T "Duplikate Gefunden !!!" -i i -o "RELEASE: %WD_FILE_N%" Existiert bereits" 0x0 8500

REM read existing files
REM dir /A:a /B /S /O %check_dir% >%temp%\archivelist.txt
REM dir /B /O %check_dir% >%temp%\archivelist.txt

REM check if file is in list
FINDSTR /L /I /C:"%WD_FILE_N%" "D:\brokendisk-archive.txt"
REM FINDSTR /L /I /C:"%WD_FILE_N%" "%temp%\archivelist.txt"
if %errorlevel% equ 0 goto :duplicate

REM take aktion here if there IS NO duplicate
echo "%WD_FILE_N%" has no duplicate in brokendisk-archive.txt
GOTO :EOF

:duplicate
REM take aktion here if there IS A duplicate
%dialog%
echo "%WD_FILE_N%" has a duplicate in %check_dir%



siehst du da ein Fehler drin ?

"broken-archive.txt" liste der Inhalt besteht nur aus den Namen ohne Endungen.

er meint das nie ein dup. vorhanden sei ,obwohl ich Ordner/Dateien mit Namen aus der liste "broken-archive.txt" im "WD monitoring" Ordner erstellt habe.



mfG Mario
Back to top
 
 
IP Logged
 
Dirk
YaBB Administrator
*****
Offline



Posts: 658
South Germany
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #8 - Nov 9th, 2009 at 1:51pm
 
Hi Mario,

nun, den Dialog, den Du da aufrufts, kenn ich nicht, weiss also nicht, welche Parameter er braucht.

3 Fehler sehe ich auf Anhieb:

REM set check_dir="G:\-=)(- DoWnLoAd's -)(=-"

ist auskommentiert (REM, bedeutet: Zeile wird vom Befehlsinterpreter überlesen), somit ist die Variable %check_dir% nicht belegt
Nimm:
set check_dir="G:\-=)(- DoWnLoAd's -)(=-"
(Achtung: Wenn G: ein Netzlaufwerk ist und die Aufgabe später als Windows-Dienst ausgeführt werden soll, wird dies nicht funktionieren. Nimm stattdessen die UNC-Schreibweise: set check_dir="\server\freigabe\-=)(- DoWnLoAd's -)(=-"  )

REM dir /A:a /B /S /O %check_dir% >%temp%\archivelist.txt

ist auskommentiert, d.h. der Verzeichnisinhalt von %check_dir% wird nicht nach %temp%\archivelist.txt geschrieben (wobei Du ihn wohl eher nach D:\brokendisk-archive.txt schreiben möchtest) und der Parameter a nach dir /A:a ist mir unbekannt, ebenso der Doppelpunkt.
Nimm:
dir /A /B /S /O %check_dir% >"D:\brokendisk-archive.txt"
Was möchtest Du denn mit den Parametern /A /S /O erreichen? /B langt völlig.

Probiers nochmal.
Kleiner Tipp: Wenn das Script läuft und Du weitere Veränderungen machen möchtest, ändere immer nur EINEN Befehl/Parameter/Wert und teste dann.


Back to top
 

Viele Grüße / Best regards
Dirk - GdP Software

dirk [at] gdpsoftware [dot] com
http://blog-de.gdpsoftware.com
Webseite: http://www.gdpsoftware.com
WWW WWW  
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #9 - Nov 9th, 2009 at 2:13pm
 
Hi Dirk

danke dir für die schnelle Antwort.

ich wollte eigentlich anhand einer schon vorhanden liste "brocken-archive.txt" deren Inhalt mit dem was Überwacht wird abgleichen lassen dachte eigentlich das sei der selbe Effekt ,als wenn ich erst mit dem CMD "DIR" eine liste erstellen lassen würde.

und war der Meinung das er das checkdir nicht mehr benötigt, da ja kein Ordner in dem Sinne überprüft werden soll, sondern anhand der schon vorhandenen liste und der variable "%WD_FILE_N%" abgleicht, sprich suche "%WD_FILE_N%" in der liste "broken-archive.txt" wenn ja springe zu duplicate.



-Nachtrag-

Edited:


- A:a Zu archivierende Dateien
- O:n Gibt die Liste sortiert aus.
- S Listet Dateien und alle Unterverzeichnisse auf.





mfG Mario
Back to top
 
 
IP Logged
 
Dirk
YaBB Administrator
*****
Offline



Posts: 658
South Germany
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #10 - Nov 9th, 2009 at 2:58pm
 
Hallo Mario,

ja, das kannst Du auch machen, dann kannst Du die Zeile auskommentiert lassen (hattest Du aber nicht geschrieben Wink)

FINDSTR /L /I /C: "%WD_FILE_N%" "D:\brokendisk-archive.txt"  (Leerzeichen nach dem C:, weiss nicht, ob er darüber stolpert)

sucht den Dateinamen in der Liste "brokendisk-archive.txt". Dabei wird immer ein kompletter String der Liste mit der Variablen %WD_FILE_N% verglichen.
%WD_FILE_N% besteht jedoch aus Dateierweiterung UND dem Dateinamen. (siehe auch http://de.watchdirectory.net/wdhelp/plugins/wdopAutoRunBatEnv_deu.html)

Wenn Du nur den Dateinamen ohne Dateierweiterung nehmen möchtest, verwende die Variable %WD_FILE_B%, also

Code:
FINDSTR /L /I /C:"%WD_FILE_B%" "D:\brokendisk-archive.txt"  


und
Code:
echo "%WD_FILE_B%" has no duplicate in brokendisk-archive.txt  


bzw.
Code:
echo "%WD_FILE_B%" has a duplicate in brokendisk-archive.txt  



Back to top
 

Viele Grüße / Best regards
Dirk - GdP Software

dirk [at] gdpsoftware [dot] com
http://blog-de.gdpsoftware.com
Webseite: http://www.gdpsoftware.com
WWW WWW  
IP Logged
 
RaNgErID
YaBB Newbies
*
Offline



Posts: 19
Re: bei Duplicate einer Datei, Action ausführen ..
Reply #11 - Nov 9th, 2009 at 8:20pm
 
Hi Dirk

das ist schon richtig so, das mit dem Ordner Vergleich nutze ich auch.

das ist nun der 2. Akt ^^ ,anhand einer liste die Dateien abgleichen.

ich danke dir vorerst für deine Geduld , und deine Script B.s. .

werde ich gleich morgen Testen, aber denke schon das es Funktionieren wird.



mfG Mario
Back to top
 
 
IP Logged
 
Page Index Toggle Pages: 1