Ausgabe in Batch anpassen - Datei kopieren
Hallo Zusammen,
ich habe folgendes Batchskript, welches mir eine Datei auf eine bestimmte Anzahl Computer kopiert. Die Computer bezieht er aus einer .txt Datei mit IP Adressen. Das funktioniert auch soweit top.
Jetzt möchte ich das Skript gerne so anpassen, das er die PCs überspringt, auf denen die Datei schon vorhanden ist, mit der Ausgabe im cmd Fenster, welche IP Adressen er übersprungen hat und auf welche er die Datei kopiert hat. Leider komme ich da nicht weiter im Moment.
ich habe folgendes Batchskript, welches mir eine Datei auf eine bestimmte Anzahl Computer kopiert. Die Computer bezieht er aus einer .txt Datei mit IP Adressen. Das funktioniert auch soweit top.
Jetzt möchte ich das Skript gerne so anpassen, das er die PCs überspringt, auf denen die Datei schon vorhanden ist, mit der Ausgabe im cmd Fenster, welche IP Adressen er übersprungen hat und auf welche er die Datei kopiert hat. Leider komme ich da nicht weiter im Moment.
@echo off
call :isAdmin
if %errorlevel% == 0 (
goto :run
) else (
echo Requesting administrative privileges...
goto :UACPrompt
)
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
:run
set frompath= "\\serverxyz\skriptxyz"
for /f "eol= tokens=1" %%i in (%userprofile%\desktop\ips.txt) do copy /v /y %frompath% "%%i\C$\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUP"
pause
exit /b
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B`
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 549707
Url: https://administrator.de/contentid/549707
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
also entweder du hast hier den falschen Code gepostet, oder aber du bist damit noch nicht einmal angefangen. Was davon stimmt?
Gruß
also entweder du hast hier den falschen Code gepostet, oder aber du bist damit noch nicht einmal angefangen. Was davon stimmt?
Gruß
BATCH - SCHNIPSEL nicht komplett
@echo off
REM \\192.168.1.1\ IP des zuzugreifenden Clients
REM \ps\ Freigabename
REM beta.txt Dateiname
IF EXIST \\192.168.1.1\ps\beta.txt ( goto ok ) ELSE ( goto nok )
:OK
REM ECHO " OKAY "
REM ECHO " GGF ein CALL BATCH mit Befehlen "
REM ECHO " DATEIEINTRAGUNGEN UND CO ( z.b. Echo " TEXT " >> c:\tempLOG.TXT ) "
GOTO end
:NOK
REM ECHO " NICHT OKAY "
REM ECHO " DATEIEINTRAGUNGEN UND KOPIEREN ( z.b. Echo " TEXT " >> c:\tempLOG.TXT und Copy x nach y ) "
REM ECHO " GGF ein CALL BATCH mit Befehlen "
goto end
:end
@echo off
REM \\192.168.1.1\ IP des zuzugreifenden Clients
REM \ps\ Freigabename
REM beta.txt Dateiname
IF EXIST \\192.168.1.1\ps\beta.txt ( goto ok ) ELSE ( goto nok )
:OK
REM ECHO " OKAY "
REM ECHO " GGF ein CALL BATCH mit Befehlen "
REM ECHO " DATEIEINTRAGUNGEN UND CO ( z.b. Echo " TEXT " >> c:\tempLOG.TXT ) "
GOTO end
:NOK
REM ECHO " NICHT OKAY "
REM ECHO " DATEIEINTRAGUNGEN UND KOPIEREN ( z.b. Echo " TEXT " >> c:\tempLOG.TXT und Copy x nach y ) "
REM ECHO " GGF ein CALL BATCH mit Befehlen "
goto end
:end
BATCHDATEI
@echo off
IF EXIST \\192.168.1.%1\ps\beta.txt ( goto ok ) ELSE ( goto nok )
:OK
ECHO " OKAY DATEI VORHANDEN "
ECHO " IP x.x.x.%1 besitzt die Datei " >> c:\temp\LOG.txt
GOTO end
:nok
ECHO " OKAY DATEI VORHANDEN "
copy \\192.168.1.%1\ps\betb.txt \\192.168.1.%1\ps\beta.txt
ECHO " Zur IP x.x.x.%1 wurde die Datei nun kopiert " >> c:\temp\LOG.txt
goto end
:end
Bissel verfeinert. Die Pfade und IP's und Datein und CO müssen angepasst werden. Dies ist lediglich ein Muster
Wenn die Batchdatei mit einer Zahl aufgerufen wird, z.b. [ MEINEBATCH.bat 56 ] würde bei mir die IP 192.168.1.56 angesprochen.
MFG Uwe
@echo off
IF EXIST \\192.168.1.%1\ps\beta.txt ( goto ok ) ELSE ( goto nok )
:OK
ECHO " OKAY DATEI VORHANDEN "
ECHO " IP x.x.x.%1 besitzt die Datei " >> c:\temp\LOG.txt
GOTO end
:nok
ECHO " OKAY DATEI VORHANDEN "
copy \\192.168.1.%1\ps\betb.txt \\192.168.1.%1\ps\beta.txt
ECHO " Zur IP x.x.x.%1 wurde die Datei nun kopiert " >> c:\temp\LOG.txt
goto end
:end
Bissel verfeinert. Die Pfade und IP's und Datein und CO müssen angepasst werden. Dies ist lediglich ein Muster
Wenn die Batchdatei mit einer Zahl aufgerufen wird, z.b. [ MEINEBATCH.bat 56 ] würde bei mir die IP 192.168.1.56 angesprochen.
MFG Uwe
Da keiner ausser dir, den genauen Inhalt deiner IPS.txt kennt und keiner weis, was du eigentlich mit %%i übergibts, kann auch keiner dir eine funktionierende Gesamtlösung bieten. Ich vermute mal \\ip oder \\computername.
Daher hab ich auch meine Hilfestellung sehr allgemein gehalten und als eigeneständige Batch angeboten und die wiederum mit dem Hinweis auf Anpassung.
Als aufruf [ Meinebatch.bat 56 ] setzt sie genau dein Wunsch mit meinen vorgaben um.
Gerne kann man dir auch eine komplette Lösung bieten, aber dann brauch man auch alle Informationen die du hast.
Wenn du deine FOR Schleife hinten anpasst, und meine - von dir - angepasste Batch aufrufst, ist die Lösung da.
MFG Uwe
Daher hab ich auch meine Hilfestellung sehr allgemein gehalten und als eigeneständige Batch angeboten und die wiederum mit dem Hinweis auf Anpassung.
Als aufruf [ Meinebatch.bat 56 ] setzt sie genau dein Wunsch mit meinen vorgaben um.
Gerne kann man dir auch eine komplette Lösung bieten, aber dann brauch man auch alle Informationen die du hast.
Wenn du deine FOR Schleife hinten anpasst, und meine - von dir - angepasste Batch aufrufst, ist die Lösung da.
MFG Uwe