brother-tuck
Goto Top

Dateiinhalte per Batch aus Datei auslesen und in neue Datei schreiben

Hallo Zusammen,

ich habe ein kleines Batch-Problem.
Habe mehrere Stunden im Internet gesucht aber einfach nichts passendes gefunden, es existieren immer nur Teile, leider keine Passende Batch-Datei.

Also ich benötige eine Batch-DateiA,
die aus einer Textdatei Computernamen die untereinanderstehen einzeln in eine Variable liest,
und dann in einer anderen Batch-DateiB den Computernamen ersetzt.
Diese Batch-Datei sollte unter dem Computernamen gespeichert werden.
Das Ganze soll immer wiederholt werden bis alle Computernamen die in der Textdatei stehen als Batch-Datei zur Verfügung stehen.

Es handelt sich um ca. 200 Computernamen.
Eines meiner Probleme ist das ich den Text der Batch-DateiB nicht in eine Variable bekomme, Teile davon werden einfach in Code umgewandelt, weis einfach nicht wie ich das umgehen kann...

Der Inhalt der Batch-DateiB lautet:
@set #=||(set #=1&start "%~dpnx0" /min cmd /c %0 %*&set #=&goto :eof)  

echo off

dir "\\%COMPUTERNAME%\c$\Dokumente und Einstellungen\*.pst" /s /Q >"\\%Servername%\Outlook\%username%\%COMPUTERNAME%-%date%.log"  

Für die Batch-DateiA habe ich bereits mit den Befehlen echo, for und findstr experimentiert, aber ich bekomms einfach nicht hin...

Ich hoffe mir kann jemand helfen, bin mit meinem Latein(hatte nie welches face-wink) am Ende.

Wenn möglich sollte die Batchdatei unter den Betriebssystemen Windows XP, Vista und 7 laufen.

Solltet ihr noch Angaben benötigen einfach fragen, habe bestimmt noch was vergessen.

Content-Key: 179387

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

Printed on: April 25, 2024 at 15:04 o'clock

Member: Skyemugen
Skyemugen Jan 23, 2012 at 14:22:20 (UTC)
Goto Top
Aloha,

na, da kannst du ja nicht dolle gesucht haben, ehrlich gesagt ... solltest nicht im Internet sondern bei Administrator.de im Batch-Bereich suchen face-wink
for /f "usebackq" %%s in ("E:\Skripte\textdatei1.txt") do (  
	(
		echo @set #=^|^|^(set #=1^&start "%%~dpnx0" /min cmd /c %%0 %%*^&set #=^&goto :eof^) 
		echo\
		echo echo off
		echo\
		echo dir "\\%%COMPUTERNAME%%\c$\Dokumente und Einstellungen\*.pst" /s /Q ^>"\\%%Servername%%\Outlook\%%username%%\%%COMPUTERNAME%%-%%date%%.log"  
	)>"E:\Skripte\%%s.bat"  
)

zu for haben wir mehr als genügend Stoff und Tutorials, Escapen per ^ kauen wir auch öfter durch und % als Text setzen, kommt nun auch nicht unhäufig vor ...

greetz André

P.S.: Wir haben hier eine schöne , die man auch im Nachhinein noch hineineditieren kann.
Member: Brother-Tuck
Brother-Tuck Jan 23, 2012 at 15:08:56 (UTC)
Goto Top
Danke für den Link. face-smile

Mein Fehler, die Variablen %Computernamen% sollen ebenfalls durch den Computernamen ersetzt werden.
Das ist mein eigentliches Problem.

Wenn der Computername PC001 lautet, dann sollte die Datei PC001.cmd heißen und der Inhalt wie folgt lauten:

@set #=||(set #=1&start "%~dpnx0" /min cmd /c %0 %*&set #=&goto :eof)  

echo off

dir "\\PC001\c$\Dokumente und Einstellungen\*.pst" /s /Q >"\\%Servername%\Outlook\%username%\PC001-%date%.log"  
Member: bastla
bastla Jan 23, 2012 at 17:23:27 (UTC)
Goto Top
Hallo Brother-Tuck und willkommen im Forum!

Wenn Du Skyes Vorschlag schon näher betrachtet / nachvollzogen hast (vorzugsweise ohne ein "echo off" vorweg), wird Dir doch sicherlich die Zeile 8 aufgefallen sein - daraus sollten sich dann auch die für die Zeile 7 erforderlichen Änderungen ableiten lassen ...

Grüße
bastla
Member: Skyemugen
Skyemugen Jan 23, 2012 at 17:39:33 (UTC)
Goto Top
Aloha bastla,

boa mein Nacken brennt von der Physio, holla die Waldfee - apropros brennt, der ersten Stock steht gerade in Flammen, na egal, heiß her geht's hier eher nicht im Thread

nun, wenn der TE genau so vorher stundenlang im Internet gesucht hat, wie er hier die paar Codezeilen sich durchliest, weiß ich, warum wir hier einen neuen Thread haben ... ja, ich bin heute gemein - a) ist Montag und b) ist es gerechtfertigt

naja egal, er wird hoffentlich deinen Hinweis folgerichtig interpretieren, ohne dass wir ihm extra die Laufvariable vor die Nase halten *guck mal da, ätsch*

Also mein letzter Hinweis bzw. link, da er auch danach noch nicht gesucht hat: Tutorial zur FOR-Schleife

greetz André

P.S.: @Brother-Tuck, nimm's mir nicht krumm aber ich kaue eben lieber mein Essen erneut durch als aufbereitete Lösungen aber ich bin zuversichtlich bei dir, hast du doch bereits Codeblöcke hineineditiert, das ist ja schonmal was, vor allem auf einem Montag face-wink
Member: Brother-Tuck
Brother-Tuck Jan 24, 2012 at 08:57:13 (UTC)
Goto Top
Ich schäme mich.
Bin gestern mit dem falschen Fuß aufgestanden.
Hat super funktioniert, vielen Dank.
Jetzt kann ich weitermachen^^

PS:@Skyemugen, ich nehms dir nicht krumm. face-smile
Die Wahrheit braucht keine Entschuldigung. face-wink