Batch Batch --> Variablen aus Textdatei

Uhlalala

Cadet 1st Year
Registriert
Aug. 2014
Beiträge
8
Hallo zusammen,

ich habe leider von Programmierung, besonders von Batch keine große Ahnung.
Ich habe mir ein Script zusammengebastelt, welches Datein auf einem bestimmten Rechner fernlöscht:

Code:
set /p rechnername=Variable Eingeben:
echo %rechnername%

rmdir /s /q "\\%rechnername%\c$\Program Files\Common Files\microsoft shared\Web Components\11\" 
rmdir /s /q "\\%rechnername%\c$\Program Files\Common Files\microsoft shared\THEMES11\"
rmdir /s /q "\\%rechnername%\c$\Program Files\Common Files\microsoft shared\MODI\11.0\" 
rmdir /s /q "\\%rechnername%\c$\Program Files\Common Files\microsoft shared\Snapshot Viewer\"
rmdir /s /q "\\%rechnername%\c$\Program Files\Common Files\microsoft shared\OFFICE11\"
del /s /q  "\\%rechnername%\C$\Program Files\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
rmdir /s /q "\\%rechnername%\c$\Program Files (x86)\Common Files\microsoft shared\Web Components\11\" 
rmdir /s /q "\\%rechnername%\c$\Program Files (x86)\Common Files\microsoft shared\THEMES11\"
rmdir /s /q "\\%rechnername%\c$\Program Files (x86)\Common Files\microsoft shared\MODI\11.0\" 
rmdir /s /q "\\%rechnername%\c$\Program Files (x86)\Common Files\microsoft shared\Snapshot Viewer\"
rmdir /s /q "\\%rechnername%\c$\Program Files (x86)\Common Files\microsoft shared\OFFICE11\"
del /s /q  "\\%rechnername%\C$\Program Files (x86)\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
rd /s /q \\%rechnername%\C$\$Recycle.Bin 

"%0"

Das funktioniert auch soweit erst mal ganz gut, es löscht die Datein (wenn vorhanden, sonst überspringt er) und wenn der Rechner nicht erreichbar ist, überspringt er das Ganze auch nach einer Zeit.

Ich würde das Script aber gerne folgendermaßen verändern:
Der Rechnername, soll aus einer .txt Datei ausgelesen werden. In der Datei rechner.txt steht jeder Name, den ich sonst nach und nach manuell eingegebn habe, in einer Zeile. Ich möchte, dass automatisch alle Rechner nach und nach druchgegangen werden.
Kann mir jemand sagen, wie das aussehen müsste?

Vielen Dank!
 
Guck dir mal
Code:
FOR /F %%i in (rechnernamen.txt) do (
echo %%i
)
an, damit solltest du hinkommen.

Hier wird jede Zeile eingelesen und als Variable %%i gespeichert sowie ausgegeben. Kannst du ja dann für dich ändern, sprich das "echo" weg und dein Script einfügen.
 
Huhu,

hoffe du kannst hier schon was mit anfangen sonst gehe ich mehr ins Detail. Das CopyA1.log schreibt das ganze noch in eine "Log" Datei.

// For Schleifen die die Text.txt die IP Adresse oder den Rechnernamen ausliest
for /f %%i in (Text.txt) do (


//Beispiel Befehl mit Adminuser anmeldung

NET USE \\%%i /User:Testuser Testpasswort

echo %%i >>copyA1.log && xcopy update\*.* "\\%%i\c$\posii" /s /Y /Q >> copyA1.log


net use \\%%i /delete )
 
Danke schon mal für eure Hilfe, also mir reicht das ganz rudimentär, ein log brauche ich nicht.

Meine Vermutung ist, dass ich die Variablen dann in dem unteren Bereich falsch eingefügt habe. Oder wo liegt mein Fehler.

Vielen Dank für eure Hilfe!

Code:
FOR /F %%i in (rechnernamen.txt) do (
rmdir /s /q "\\%ii\c$\Program Files\Common Files\microsoft shared\Web Components\11\" 
rmdir /s /q "\\%ii\c$\Program Files\Common Files\microsoft shared\THEMES11\"
rmdir /s /q "\\%ii\c$\Program Files\Common Files\microsoft shared\MODI\11.0\" 
rmdir /s /q "\\%ii\c$\Program Files\Common Files\microsoft shared\Snapshot Viewer\"
rmdir /s /q "\\%ii\c$\Program Files\Common Files\microsoft shared\OFFICE11\"
del /s /q  "\\%ii\C$\Program Files\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
rmdir /s /q "\\%ii\c$\Program Files (x86)\Common Files\microsoft shared\Web Components\11\" 
rmdir /s /q "\\%ii\c$\Program Files (x86)\Common Files\microsoft shared\THEMES11\"
rmdir /s /q "\\%ii\c$\Program Files (x86)\Common Files\microsoft shared\MODI\11.0\" 
rmdir /s /q "\\%ii\c$\Program Files (x86)\Common Files\microsoft shared\Snapshot Viewer\"
rmdir /s /q "\\%ii\c$\Program Files (x86)\Common Files\microsoft shared\OFFICE11\"
del /s /q  "\\%ii\C$\Program Files (x86)\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
rd /s /q \\%ii\C$\$Recycle.Bin 

"%0"
 
guck mal deine variable, gespeichert wird in %%i und du möchtest %ii aufrufen, da müsste dann auch %%i stehen ;)
 
Du hast in deinem Programm die Variable %ii drinne anstatt %i wie du auch für die Schleife benutzt.
 
Das löschen funktioniert mittlerweile sehr gut, danke dafür!

Eine kleine Modifikation hätte ich noch als Wunsch: Ich würde das Script nur versuchen laschen zu löschen, wenn die Datei wirklich existiert, da ich die Erfahrung gemacht habe, dass das ganze sonst sehr lange dauert.

Code:
FOR /F %%i in (rechnernamen.txt) do (	
if exist "\\%%i\c$\Program Files\Common Files\microsoft shared\Web Components\11\" rmdir /s /q "\\%%i\c$\Program Files\Common Files\microsoft shared\Web Components\11\" 
if exist "\\%%i\c$\Program Files\Common Files\microsoft shared\THEMES11\" rmdir /s /q "\\%%i\c$\Program Files\Common Files\microsoft shared\THEMES11\"
if exist "\\%%i\c$\Program Files\Common Files\microsoft shared\MODI\11.0\" rmdir /s /q "\\%%i\c$\Program Files\Common Files\microsoft shared\MODI\11.0\" 
if exist "\\%%i\c$\Program Files\Common Files\microsoft shared\Snapshot Viewer\"  rmdir /s /q "\\%%i\c$\Program Files\Common Files\microsoft shared\Snapshot Viewer\"
if exist "\\%%i\C$\Program Files\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*"  	del /s /q  "\\%%i\C$\Program Files\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
if exist "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\Web Components\11\" 	 rmdir /s /q "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\Web Components\11\" 
if exist "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\THEMES11\" 	 rmdir /s /q "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\THEMES11\"
if exist "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\MODI\11.0\"  	rmdir /s /q "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\MODI\11.0\" 
if exist "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\Snapshot Viewer\"  	rmdir /s /q "\\%%i\c$\Program Files (x86)\Common Files\microsoft shared\Snapshot Viewer\"
if exist "\\%%i\C$\Program Files (x86)\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*"  	del /s /q  "\\%%i\C$\Program Files (x86)\Common Files\microsoft shared\MSInfo\OINFOP11.exe*.*" 
rd /s /q \\%%i\C$\$Recycle.Bin 

"%0"
)

Das wäre mein Ansatz dazu, ist der so korrekt?
 
Zurück
Oben