scorpion3
Goto Top

Batch Aus einer .txt datei Zeilen auslesen und in die .bat einfügen

Ich wollte eine kleine Kopier bat schreiben und das man in einer .txt datei angibt welche Datei man wohin kopiern möchte. z.b. "I:\Test\Neu.txt" (neue Zeile)nach "I:\Test2\" im textdokument soll es so aussehen:
I:\Test\Neu.txt
I:\Test2\

bisher sieht mein Geschriebenes so aus:

@echo off
title Backup
echo.
echo.
echo Backup wird gestartet
pause

if exist "I:\Test\Neu.txt\" goto a
goto b

:a
echo Datei vorhanden!
pause
goto c

:c
xcopy "I:\Test\Neu.txt" "I:\Test2\"

if exist "I:\Test\" goto g
goto f

:b
color 0c
echo Datei nicht vorhanden!
goto f

:f
echo Backup fehlgeschlagen!
color 0c
pause
exit

:g
echo Backup erfolgreich!
color 0a
pause
exit

ich muss die angaben aus der .txt Datei an die richtige stelle bekommen...

.txt 1 Zeile: Muss in die 1. if und in den xcopy eingefügt werden.
.txt 2 Zeile: Muss in das 2. if und in das zweite von xcopy rein.

Kann mir einer sagen wie das geht?
Danke schonmal!
Scorpion3

Content-Key: 186805

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: bastla
bastla Jun 20, 2012 updated at 20:14:16 (UTC)
Goto Top
Hallo Scorpion3 und willkommen im Forum!

Ich halte zwar die Aufteilung der beiden Pfade in der Textdatei (in meinem Beispiel: "I:\Test\Config.txt") auf 2 Zeilen nicht für sinnvoll, aber umsetzen ließe sich das unter Verwendung von Variablen etwa so:
setlocal
set "Quelle="  
set "Ziel="  
for /f "usebackq delims=" %%i in ("I:\Test\Config.txt") do (  
    if not defined Quelle (
        set "Quelle=%%i"  
    ) else (
        if not defined Ziel set  "Ziel=%%i"  
    )
)
if not defined Ziel echo Keine Zielangabe gefunden! & pause & goto :eof

if exist "%Quelle%" ...  
Durch die "defined"-Abfragen wird sichergestellt, dass nur die ersten beiden Zeilen der Datei verwendet werden und dass auch tatsächlich ein Ziel gelesen werden konnte ...

Grüße
bastla
Member: Scorpion3
Scorpion3 Jun 21, 2012 at 13:19:02 (UTC)
Goto Top
Danke für deine Antwort,

ich muss die angaben aus der .txt Datei an die richtige stelle bekommen...

.txt 1 Zeile: Muss in die 1. if und in den xcopy eingefügt werden.
.txt 2 Zeile: Muss in das 2. if und in das zweite von xcopy rein.

so wie ich das unten Geschriebene verstehe sind die zwei Pfade unten nicht getrennt...
also was kopiert werden soll und wo hin.

ich bin nicht so erfahren mit batch Dateien alo wo genau müsste ich das dann einfügen damit es auch klappt?
Member: bastla
bastla Jun 21, 2012 at 14:13:29 (UTC)
Goto Top
Hallo Scorpion3!

Du hast ja nach dem oben skizzierten Schnipsel Quelle und Ziel jeweils in der gleichnamigen Variablen - daher überall, wo bisher in Deinem Batch "I:\Test\Neu.txt\" steht, einfach "%Quelle%" einsetzen und analog dazu auch beim Ziel vorgehen ...

Grüße
bastla
Member: Scorpion3
Scorpion3 Jun 21, 2012 at 16:26:06 (UTC)
Goto Top
Hallo bastla,
danke es klappt

Grüße
Scorpion3