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

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: Roadrunner0815
Roadrunner0815 17.06.2015 um 14:24:17 Uhr
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.
Mitglied: PatrickHeissi10
PatrickHeissi10 17.06.2015 um 14:38:55 Uhr
Goto Top
Das Problem ist es sind mehr als 100 config Datein
Mitglied: SarekHL
SarekHL 17.06.2015 um 14:39:51 Uhr
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.
Mitglied: PatrickHeissi10
PatrickHeissi10 17.06.2015 um 14:44:46 Uhr
Goto Top
Wie kann ich die einzelnen configs den PCs zuweisen?
Mitglied: SarekHL
SarekHL 17.06.2015 um 14:50:24 Uhr
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.
Mitglied: PatrickHeissi10
PatrickHeissi10 17.06.2015 um 14:58:49 Uhr
Goto Top
Ja bitte das wäre tollface-smile
Mitglied: SarekHL
Lösung SarekHL 17.06.2015, aktualisiert am 18.06.2015 um 12:11:02 Uhr
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.
Mitglied: bastla
Lösung bastla 17.06.2015, aktualisiert am 18.06.2015 um 12:10:56 Uhr
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
Mitglied: SarekHL
SarekHL 17.06.2015 um 21:41:06 Uhr
Goto Top
Nur zwei Zeilen Code ... dagegen komme ich nicht an ;)