Anzeige

Dateien suchen und kopieren

#1
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
 

HonniCilest

Erfahrenes Mitglied
#3
Hier mal ein vereinfachtes Beispiel mit Powershell:
Code:
$liste = Get-Content C:\temp\liste.txt
ForEach ($listeneintrag In $liste) { 
    Copy-Item C:\temp\Server\"$listeneintrag"*.txt C:\temp
}
 
#4
@ 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:
@echo off 
for /f "delims=" %%i in (C:\Dateien.txt) do call :ProcessFile "%%i.pdf"
goto :eof

:ProcessFile
for /f "delims=" %%d in ('findstr /i "~0,8%" \\caopti06.zucchi.it\fatture\Germania\Bassetti\') do xcopy %f c:\pdf

goto :eof
PS mit
Code:
echo off
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
 

HonniCilest

Erfahrenes Mitglied
#5
Warum so umständlich? Verwende * als Platzhalter.
Code:
@echo off
for /f "delims=" %%i in (C:\Dateien.txt) do xcopy file:\\caopti06.zucchi.it\fatture\Germania\Bassetti\%%i*.pdf C:\pdf
 
#6
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
 
#8
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
 

HonniCilest

Erfahrenes Mitglied
#10
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:
#11
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.
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:

HonniCilest

Erfahrenes Mitglied
#12
Kann mann ein text protokoll schreiben in dem die nicht gefundenen datei aufgelistet werden
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.

ps die suche dauert relativ lang
Kommt darauf an wie groß Dateien.txt ist und wie deine Zugriffsgeschwindigkeit auf deinen Fileshare ist.
 
#13
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:

HonniCilest

Erfahrenes Mitglied
#16
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
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
 

HonniCilest

Erfahrenes Mitglied
#18
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
Du musst %%j ja auch in einer inneren Schleife setzen!
Also:
Code:
for blablabla %%i blabla do (
 for blablabla %%j blablabla do
  xcopy blablabla
)
Ich denke für %%j müsste die Zeile etwa so aussehen:
Code:
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:
@echo off

for /f "delims=" %%i in (C:\Rechnungen\MZE\MZEDateien.txt) do (
  for /f "delims=" %%j in ('dir /a:d/b/s \\caopti06.zucchi.it\fatture\Germania') do 
    xcopy "%%j/%%i*.pdf" "C:\Rechnungen\MZE\"
)
 
Zuletzt bearbeitet:
Anzeige

Neue Beiträge

Anzeige