jackson91
Goto Top

Datei nur kopieren wenn sie nicht in einer Liste steht, sonst kopieren und der Liste hinzufügen

Servus zusammen,

ich habe ein Problem bei der Batch-Programmierung:

Es sollen .tif-Dateien aus einem Quellordner (A:\) in einen Zielordner (B:\) kopiert werden, allerdings nur, wenn sich diese Dateien noch nicht in einer Liste (A:\Liste.txt) befinden.
Nachdem diese Dateien kopiert wurden, soll die entsprechende Datei der o.g. Liste hinzugefügt werden.
Falls die Datei bereits in der Liste steht, soll nichts unternommen werden.

Hier mein Versuch:

@echo OFF

set "sourceRoot=A:"
set "sourceList=A:\Liste.txt"
set "destFolder=B:"

for /f %%i in ('dir /b "%sourceRoot%\*.tif"') do (
for /f %%j in (%sourceList%) do (
if not equ "%%i" "%%j" (
copy %%i "%destFolder%\"
dir "%%i" /b >%sourceList%
) else (
goto: EOF
)
)
)

Ich versuche es da schon länger, allerdings funktioniert es bisher nicht.

Kann mir da einer weiterhelfen?

Gruß

Content-Key: 419303

Url: https://administrator.de/contentid/419303

Printed on: April 28, 2024 at 09:04 o'clock

Member: Penny.Cilin
Penny.Cilin Feb 19, 2019 at 10:34:04 (UTC)
Goto Top
Hallo,

als erstes: Nutze für Code auch Codetags. Du findest das Symbol links neben dem Editorfenster. Es ist das vorletzte Symbol von unten.
Zweitens: Ist das richtig, dass die Daten vom Diskettenlaufwerk kommen?
Drittens: ist das richtig, dass die Daten auf das zweite Diskettenlaufwerk sollen?

Erkläre bitte was die Laufwerke A: und B: sind.

Gruss Penny
Member: godlie
godlie Feb 19, 2019 at 10:40:47 (UTC)
Goto Top
Zitat von @Penny.Cilin:

Hallo,

als erstes: Nutze für Code auch Codetags. Du findest das Symbol links neben dem Editorfenster. Es ist das vorletzte Symbol von unten.
Zweitens: Ist das richtig, dass die Daten vom Diskettenlaufwerk kommen?
Drittens: ist das richtig, dass die Daten auf das zweite Diskettenlaufwerk sollen?

Erkläre bitte was die Laufwerke A: und B: sind.

Gruss Penny

Flopyy Sync? face-smile
Member: Jackson91
Jackson91 Feb 19, 2019 at 10:46:52 (UTC)
Goto Top
Servus,

Nein es sind keine Diskettenlaufwerke.
Zum einfacheren Verständnis kann man auch Laufwerk C: und D: anstatt A: und B: nehmen:

Hier nochmal der Code:

@ECHO OFF

set "sourceRoot=C:"  
set "sourceList=C:\Liste.txt"  
set "destFolder=D:"  

for /f %%i in ('dir /b "%sourceRoot%\*.tif"') do (  
	for /f %%j in (%sourceList%) do (
		if equ "%%i" "%%j" (  
		copy %%i "%destFolder%\"  
		dir "%%i" /b >%sourceList%  
		) else (
		goto EOF
		)
	)
)
Mitglied: 138810
Solution 138810 Feb 19, 2019 updated at 11:05:01 (UTC)
Goto Top
Wieder einer der noch mit Batch rumwurstelt ...
@echo off
set "sourceRoot=A:"  
set "sourceList=A:\Liste.txt"  
set "destFolder=B:"  
for /f "delims=" %%a in ('dir /b "%sourceRoot%\*.tif" ^| findstr /ilxvg:"%sourceList%"') DO (copy "%sourceRoot%\%%a" "%destFolder%\" & echo.%%a>>"%sourceList%")  

Tante Edith: Tippfehler bereinigt
Member: Jackson91
Jackson91 Feb 19, 2019 updated at 11:13:21 (UTC)
Goto Top
Vielen Dank für die schnelle Antwort.

Es wird leider nichts kopiert und in der Liste erscheinen auch keine Dateinamen.
Zudem bekomme ich die Meldung: "FINDSTR: keine Suchzeichenfolge".
Mitglied: 138810
Solution 138810 Feb 19, 2019 updated at 11:14:54 (UTC)
Goto Top
War ein Tippfehler ist oben schon korrigiert...
Member: Jackson91
Jackson91 Feb 19, 2019 at 11:17:22 (UTC)
Goto Top
Vielen herzlichen Dank!