patrickheissi10
Goto Top

Bestimmte Datein per Batch kopieren

Ich muss von einen beliebigen Netzwerklaufwerkpfad nennen wir ihn M:\test dort liegen config Datein kopieren
Diese soll ich auf das lokale C: Laufwerk kopieren dieser Pfad heißt C:\test in ihm befindet sich eine Datei mit den Namen config002 die von einem Sondergerät bezogen wird. Im Netzlaufwerk werden die config-Datein täglich aktualisiert daher soll die Batch die vom Server nur die config002 kopieren.
Die Batch Datei sollte aber auch bei anderen PC die z.B. die config003 oder 004 benutzen funktionieren da das Skript in den Autostart jedes PCs mit einem Sondergerät kommt.

Bitte um Hilfe!!

Danke im voraus
LG Patrick

Content-Key: 274804

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

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

Member: Roadrunner0815
Roadrunner0815 Jun 17, 2015 at 12:24:17 (UTC)
Goto Top
versuch es mal mit folgender Zeile in deiner Batch:

copy „M:\test\config002.cfg “ „C:\test“

Entweder du machst dann für jeden PC einzeln eine Batch in der du statt config002 z.B. config003 schreibst oder du arbeitest an der Stelle mit Wildcards.
Member: PatrickHeissi10
PatrickHeissi10 Jun 17, 2015 at 12:38:55 (UTC)
Goto Top
Das Problem ist es sind mehr als 100 config Datein
Member: SarekHL
SarekHL Jun 17, 2015 at 12:39:51 (UTC)
Goto Top
Gibt es denn auf den PCs eine Variable, aus der hervorgeht, welche config-Datei der jeweilige PC braucht? Oder ist die "002" z.B. Teil des PC-Namens? Denn dann kann man wirklich eine Batchdatei machen, die von jedem PC aus aufgerufen werden kann. Sonst, wie Roadrunner schon sagt, brauchst Du für jeden PC eine eigene Batch. Oder Du hinterlegst eine Text-Datei, welcher PC (Name) welche Config ziehen muss und die Batch liest das aus und kopiert die richtige Datei.
Member: PatrickHeissi10
PatrickHeissi10 Jun 17, 2015 at 12:44:46 (UTC)
Goto Top
Wie kann ich die einzelnen configs den PCs zuweisen?
Member: SarekHL
SarekHL Jun 17, 2015 at 12:50:24 (UTC)
Goto Top
Zitat von @PatrickHeissi10:

Wie kann ich die einzelnen configs den PCs zuweisen?

In Batch müsste das jemand anders (z.B. Biber) beantworten. Ich weiss zwar, dass es geht, aber nicht wie. In VB-Script könnte ich Dir was basteln, aber soweit ich Dich verstanden habe, soll es ja Batch sein.
Member: PatrickHeissi10
PatrickHeissi10 Jun 17, 2015 at 12:58:49 (UTC)
Goto Top
Ja bitte das wäre tollface-smile
Member: SarekHL
Solution SarekHL Jun 17, 2015, updated at Jun 18, 2015 at 10:11:02 (UTC)
Goto Top
In VB-Script könnte das so aussehen:

Set wshShell = CreateObject( "WScript.Shell" )  
pcname = wshShell.ExpandEnvironmentStrings( "%computername%" )  

Set fso = CreateObject("Scripting.FileSystemObject")  
Set oFile = fso.OpenTextFile("\\server\freigabe\verteiler.txt")  

while not oFile.AtEndOfStream
zeile = oFile.ReadLine
a=split(zeile,";")  
rechner = a(0)
inifile = "config" & a(1)  

if rechner = pcname then
   set objFSO = CreateObject("Scripting.FileSystemObject")   
   objFSO.copyfile "\\server\freigabe\" & inifile, "c:\test\"  
   end if

Wend
oFile.Close


In der Freigabe, in der auch die Ini-Dateien liegen, muss dann eine Datei verteiler.txt liegen, die z.B. folgendes beinhaltet:

rechner01;001
rechner02;001
rechner03;002
rechner04;003

Ein PC mit dem Namen "rechner03" würde dann die Ini-Datei "config002" ziehen, wenn die VBS-Datei darauf ausgeführt wird.
Member: bastla
Solution bastla Jun 17, 2015, updated at Jun 18, 2015 at 10:10:56 (UTC)
Goto Top
@ SarekHL
... wobei die Zeile 13 vielleicht besser
if lcase(rechner) = lcase(pcname) then
lauten könnte ...

Per Batch (mit der gleichen Textdatei) ungetestet etwa so:
for /f "tokens=2 delims=;" %%i in ('findstr /ib "%computername%" \\server\freigabe\verteiler.txt') do copy "\\server\freigabe\config%%i" c:\test\
Grüße
bastla
Member: SarekHL
SarekHL Jun 17, 2015 at 19:41:06 (UTC)
Goto Top
Nur zwei Zeilen Code ... dagegen komme ich nicht an ;)