chrism73

Dateien im Netzwerk per Skript kopieren

Hallo ich soll in userem Netzwerk bei ca. 200 Clients überprüfen ob es unter c:\Programme ein bestimmtes Verzeichnis gibt, und in c:\windows eine Datei kopieren von der es unter Umständen schon eine solche gibt.

die hostnamen der Clients liegen als Txtfile vor:

pc1
server2
blabla
...

ich würde also gern ein Skript haben das folgendes macht:

- zuerst sich mit den Clients auf c$ aus der Liste verbindet, Administrator login sollte in der Batchdatei mitgegeben werden
- überprüft ob das Verzeichnis xxx in c:\Programme existiert. Wenn nicht den hostnamen in eine txt-datei schreibt.
-die datei blabla in das Verzeichnis c:\windows kopiert. Falls diese schon vorhanden ist sie trotzdem überschreibt.
- die Netzlaufwerke wieder trennt.

Wer kann mir helfen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 61719

Url: https://administrator.de/forum/dateien-im-netzwerk-per-skript-kopieren-61719.html

Ausgedruckt am: 05.07.2025 um 12:07 Uhr

bastla
bastla 19.06.2007 um 10:11:37 Uhr
Goto Top
Hallo ChrisM73!

Schematisch (aber ungetestet) sollte es etwa so gehen (wobei ich keinen Grund für ein Mapping von C$ sehe und daher darauf verzichte):
@echo off & setlocal
set "V=Verzeichnisname"  
set "D=blabla.ext"  
set "Hostnames=hostnames.txt"  
::Logfiles
set "Offline=Offline.txt"  
set "NoDir=VerzeichnisFehlt.txt"  
set "NoCopy=NichtKopiert.txt"  
if exist "%Offline%" del "%Offline%"  
if exist "%NoDir%" del "%NoDir%"  
if exist "%NoCopy%" del "%NoCopy%"  
for /f "usebackq eol=; delims=" %%i in ("%Hostnames%") do call :ProcessHost "%%i"  
goto :eof
:ProcessHost
ping %~1 >nul || (echo %~1>>"%Offline%" & goto :eof)  
echo %~1
dir /ad "\\%~1\c$\Programme\%V%\" >nul 2>nul || echo %~1>>"%NoDir%"  
if exist "\\%~1\c$\Windows\" copy /y "%D%" "\\%~1\c$\Windows\" >nul 2>nul || echo %~1>>"%NoCopy%"  
if exist "\\%~1\c$\WINNT\" copy /y "%D%" "\\%~1\c$\WINNT\" >nul 2>nul || echo %~1>>"%NoCopy%"  
Da Du nicht erwähntest, dass die Batch-Datei unter W2000 laufen solle, habe ich mich beim Auswerten des "ping" auf den Errorlevel beschränkt.

Grüße
bastla

[Edit] Rechnernamen in %Hostnames% können per ";" auskommentiert werden; bei Bedarf wird in das Verzeichnis "WINNT" kopiert - siehe dazu auch unten [/Edit]
miniversum
miniversum 19.06.2007 um 10:56:37 Uhr
Goto Top
@bastla
ich glaube in die Zeile
solltest du noch ein goto:eof packen wenn das Verzeichnis nicht existieren sollte, also so:

miniversum