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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 274804
Url: https://administrator.de/forum/bestimmte-datein-per-batch-kopieren-274804.html
Ausgedruckt am: 10.04.2025 um 05:04 Uhr
9 Kommentare
Neuester Kommentar
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.
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.
In VB-Script könnte das so aussehen:
In der Freigabe, in der auch die Ini-Dateien liegen, muss dann eine Datei verteiler.txt liegen, die z.B. folgendes beinhaltet:
Ein PC mit dem Namen "rechner03" würde dann die Ini-Datei "config002" ziehen, wenn die VBS-Datei darauf ausgeführt wird.
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.
@ SarekHL
... wobei die Zeile 13 vielleicht besser
lauten könnte ...
Per Batch (mit der gleichen Textdatei) ungetestet etwa so:
Grüße
bastla
... wobei die Zeile 13 vielleicht besser
if lcase(rechner) = lcase(pcname) then
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\
bastla