1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Dateien suchen und kopieren

Dieses Thema im Forum "Sonstige Sprachen" wurde erstellt von giuppy, 22. Oktober 2013.

  1. giuppy

    giuppy Grünschnabel

    Hallo zusammen

    ich möchte einige pdf dateien suchen, die auf ein server sind , kopieren auf mein Festplatte speichern

    die Dateien haben verschienen Namen z.B. (13016026_UE_RECHNUNG_53825 3381.pdf) auch mit leerzeichnen
    ich möchte anhand eine liste (liste.txt) verschiedenen Dateien suchen z.B.
    13016026
    13016028
    13016050
    usw
    gesucht sollen nur die ersten 8 stelle

    kopieren und in mein Festplatte speichern (c:\pdf)
    dann mit pdf24 nur eine pdf Datei erstellen

    kann mir jemand helfen

    danke
     
  2. deepthroat

    deepthroat Erfahrenes Mitglied

    Hi.

    Was für ein Server? HTTP?

    Welches Betriebssystem?

    Wobei helfen? Also, was kannst du denn schon? Welche Programmiersprache?
     
  3. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Hier mal ein vereinfachtes Beispiel mit Powershell:
    Code (Text):
    1. $liste = Get-Content C:\temp\liste.txt
    2. ForEach ($listeneintrag In $liste) {
    3.     Copy-Item C:\temp\Server\"$listeneintrag"*.txt C:\temp
    4. }
     
  4. giuppy

    giuppy Grünschnabel

    @ deepthroat
    danke
    Was für ein Server? HTTP? ich glaube HTTP
    Welches Betriebssystem? Windows XP

    Wobei helfen? Also, was kannst du denn schon? Welche Programmiersprache
    ich habe an Batch gedacht
    ich habe folgende batch (funktioniert leider nicht)
    Code (Text):
    1. @echo off
    2. for /f "delims=" %%i in (C:\Dateien.txt) do call :ProcessFile "%%i.pdf"
    3. goto :eof
    4.  
    5. :ProcessFile
    6. for /f "delims=" %%d in ('findstr /i "~0,8%" \\caopti06.zucchi.it\fatture\Germania\Bassetti\') do xcopy %f c:\pdf
    7.  
    8. goto :eof
    PS mit
    Code (Text):
    1. echo off
    2. xcopy "\\caopti06.zucchi.it\fatture\Germania\Bassetti\11009039*" "C:\pdf"
    funktioniert
    ich möchte aber Dateinamen aus einem txt File lesen in Server (\\caopti....)suchen und diese in einen gewünschten Ordner kopieren
    z.B. Dateien.txt (in C gespeichert)
    13016026
    13016028
    13016050
    usw
    Diese Dateien in Server suchen (nur 8 Stellen) die Dateinamen auf den Server sind immer anders
    z.B. 13016026_UE_RECHNUNG_53825 3381.pdf und immer in pdf
    dann alle gefundene Datein in meine Festplatte (c:/pdf) kopieren
     
  5. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Warum so umständlich? Verwende * als Platzhalter.
    Code (Text):
    1. @echo off
    2. for /f "delims=" %%i in (C:\Dateien.txt) do xcopy file:\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf C:\pdf
     
  6. giuppy

    giuppy Grünschnabel

    funktioniert leider nicht
    dateien.txt sieht so aus
    13016025
    13016026
    13016031
    und aud den server die Dateiname sind etwa änders
    z.B.
    13016025_UE_RECHNUNG_53651 3191
    es sollen nur die erste 8 stellen vergleichen und dann kopieren
     
  7. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Deswegen auch der *. Der * steht für beliebig viele Zeichen zwischen %%i und .pdf
     
  8. giuppy

    giuppy Grünschnabel

    ich habe deine batch kopiert
    @echo off
    for /f "delims=" %%i in (C:\Dateien.txt) do xcopy file:\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf C:\pdf
    funktioniert nicht (auch mit der *)
    die pdf Rechnungen 130116025-26-31 werden NICHT auf c:\pdf kopiert
     
  9. deepthroat

    deepthroat Erfahrenes Mitglied

    Haben die Dateien denn auch tatsächlich eine .pdf Endung?

    Was ist die Ausgabe des xcopy Befehls?

    Zum Debuggen, schalte das "echo" auf on. Zeige die konkrete Ausgabe.
     
  10. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Vielleicht passt das file: an dieser Stelle auch nicht, hatte es nicht getestet. Lass' es einfach mal weg.

    Wenn es dann aber immernoch nicht funktioniert:
    Hast du alle notwendigen Rechte zum Schreiben lokal?
    Benötigst du weitere Kennungen für den Zugriff auf den Fileshare?

    Im übrigen unterscheidet sich 130116025-26-31 um eine Stelle von dem Inhalt deiner Dateien.txt, ich vermute mal, dass du hier einfach nur eine 1 zu viel getippt hast?!
     
    Zuletzt bearbeitet: 24. Oktober 2013
  11. giuppy

    giuppy Grünschnabel

    Danke
    Problem gelöst ich habe die " " vergessen
    @echo off
    for /f "delims=" %%i in (C:\Dateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf" "C:\pdf "

    Kann mann ein text protokoll schreiben in dem die nicht gefundenen datei aufgelistet werden
    ps die suche dauert relativ lang
     
    Zuletzt bearbeitet: 24. Oktober 2013
  12. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Du könntest versuchen mit dem Errorlevel zu arbeiten, laut Dokumentation von xcopy:

    Exit code: Description
    0: Files were copied without error.
    1: No files were found to copy.

    Kommt darauf an wie groß Dateien.txt ist und wie deine Zugriffsgeschwindigkeit auf deinen Fileshare ist.
     
  13. giuppy

    giuppy Grünschnabel

    danke
    werde ich später ausprobieren
    noch eine Frage
    auf mein Server caopti06..... gibt es mehrere Unterverzeichnisse
    Bassetti
    Zucchi
    usw
    mit diesem Batch wird gesucht nur in Bassetti
    @echo off
    for /f "delims=" %%i in (C:\Dateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf" "C:\pdf "
    wenn ich die "\\caopti06.zucchi.it\fatture\Germania\" schreibe funktioniert nicht
    ich habe auch for/d "delims="..... probiert aber geht auch nicht
    mit variable xcopx........../s sollte funktionieren aber dauert viel zu lange und wird auch den Unterordner z.B Bassetti kopiert ich möchte alle Dateien haben ohne unterordner
    mit
    @@echo off && title %~n0 && color 70

    for /f "delims=" %%i in (C:\Rechnungen\BR\BRDateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf" "C:\Rechnungen\BR\"

    for /f "delims=" %%i in (C:\Rechnungen\BR\BRDateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\Zucchi\%%i*.pdf" "C:\Rechnungen\BR\"

    for /f "delims=" %%i in (C:\Rechnungen\BR\BRDateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\LauraAshley\%%i*.pdf" "C:\Rechnungen\BR\

    funktioniert
    gibt eine bessere losung ?
    danke
     
    Zuletzt bearbeitet: 25. Oktober 2013
  14. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Du musst dem xcopy sagen, dass auch Unterverzeichnisse durchsucht werden sollen. Dafür gibt es m.E. einen Schalter. Bitte hierfür in die Dokumentation schauen.
     
  15. giuppy

    giuppy Grünschnabel

    Danke
    Ich habe keine schalter gefunden
    Es sollte unterverzeichnisse suchen
    Die unterverzeichnisse sollen aber nicht kopiert werden nur die dateien
     
  16. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Hmmm, ok.
    Dann gibt es aber noch die Möglichkeit von 2 Schleifen, d.h.:
    - Äußere Schleife über %%i: Zeilen der Datei wie gehabt
    - Innere Schleife über %%j: Zeilen der Ausgabe von dir /a:d/b/s %Hauptpfad% (ist in einfache Hochkomma innerhalb der Klammer zu setzen)

    --> xcopy "%%j/%%i*.pdf" "C:\pdf"
     
  17. giuppy

    giuppy Grünschnabel

    mmmmmmmmmmmhhhh

    @@echo off && title %~n0 && color 70

    for /f "delims=" %%i in (C:\Rechnungen\MZE\MZEDateien.txt) do xcopy "\\caopti06.zucchi.it\fatture\Germania\%%j/%%i*.pdf" "C:\Rechnungen\MZE\"
    funktioniert aber nicht
    gesucht sollte in "\\caopti06.zucchi.it\fatture\Germania ( mit verschiedenen Unterverzeichnisse)
    Ausgabe in C:\Rechnungen........ ohne unterverzeichnisse
     
  18. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Du musst %%j ja auch in einer inneren Schleife setzen!
    Also:
    Code (Text):
    1. for blablabla %%i blabla do (
    2.  for blablabla %%j blablabla do
    3.   xcopy blablabla
    4. )
    Ich denke für %%j müsste die Zeile etwa so aussehen:
    Code (Text):
    1. for /f "delims=" %%j in ('dir /a:d/b/s \\caopti06.zucchi.it\fatture\Germania') do
    /a:d/b/s
    Steht dabei für alle Verzeichnisse inkl. Unterverzeichnisse einfache Auflistung (also keine weiteren Metadaten)

    Edit:
    Frei zusammenkopiert würde ich etwa so meinen:
    Code (Text):
    1. @echo off
    2.  
    3. for /f "delims=" %%i in (C:\Rechnungen\MZE\MZEDateien.txt) do (
    4.   for /f "delims=" %%j in ('dir /a:d/b/s \\caopti06.zucchi.it\fatture\Germania') do
    5.     xcopy "%%j/%%i*.pdf" "C:\Rechnungen\MZE\"
    6. )
     
    Zuletzt bearbeitet: 31. Oktober 2013
Die Seite wird geladen...