Schriftarten auf Existenz ueberpruefen
Hallo,
ich habe eine Batchfile geschrieben die aus einer Textdatei (test.txt) die Rechnernamen auslesen soll und daraufhin aus einer Liste (fonts.txt) die Existenz dieser Fonts zu bestätigen. Leider bekomme ich eine Fehlermeldung die da lautet "\\%f\c$\windows\fonts\%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Leider bin ich mir gar nicht sicher ob so eine doppelte FOR Struktur überhaupt geht. Hat jemand vielleicht eine Idee warum mein untenstehender Code nicht funktioniert?
Danke
Felix
ich habe eine Batchfile geschrieben die aus einer Textdatei (test.txt) die Rechnernamen auslesen soll und daraufhin aus einer Liste (fonts.txt) die Existenz dieser Fonts zu bestätigen. Leider bekomme ich eine Fehlermeldung die da lautet "\\%f\c$\windows\fonts\%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Leider bin ich mir gar nicht sicher ob so eine doppelte FOR Struktur überhaupt geht. Hat jemand vielleicht eine Idee warum mein untenstehender Code nicht funktioniert?
@echo off
FOR /f %%f IN (test.txt) DO (
FOR /f %%i IN (font.txt) DO (
if exists \\%%f\c$\windows\fonts\%%i (echo %%i ist installiert)
)
)
)
Danke
Felix
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89651
Url: https://administrator.de/forum/schriftarten-auf-existenz-ueberpruefen-89651.html
Ausgedruckt am: 09.04.2025 um 01:04 Uhr
12 Kommentare
Neuester Kommentar
@miniversum
auch wenn es für die psychische Gesunderhaltung natürlich förderlich ist, einen wehrlosen Batch zu schreiben, der alles macht, was du ihm vorgibst...
Quäl ihn doch so und vertausche die Zeilen 3 und 4...
Er muss doch wirklich nur einmal pro Rechner dessen Da-Sein überprüfen und nicht bei jeder der 174 *.fnt-Dateien...
Is' doch auch nur ein armer Batch, der seinen Job machen will.
Grüße
Biber
auch wenn es für die psychische Gesunderhaltung natürlich förderlich ist, einen wehrlosen Batch zu schreiben, der alles macht, was du ihm vorgibst...
Quäl ihn doch so und vertausche die Zeilen 3 und 4...
Er muss doch wirklich nur einmal pro Rechner dessen Da-Sein überprüfen und nicht bei jeder der 174 *.fnt-Dateien...
Is' doch auch nur ein armer Batch, der seinen Job machen will.
Grüße
Biber
Da war ich woll in meinem jugendlichen leichtsinn etwas "übereifrig". Ok ich bin ja ncith imemr gemein zu den Batches...
Aber wenn tausche ich die Zeile 5 auch noch gleich mit.
Aber wenn tausche ich die Zeile 5 auch noch gleich mit.
@echo off
FOR /f %%f IN (AlleRechner.txt) DO (
ping -n 1 -w 1 %%f >NUL
if %errorlevel% == 1 goto:PCAus
FOR /f %%i IN (font.txt) DO (
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert)
)
:PCAus
)
@miniversum
...nicht hauen jezz', aber...
...wird innerhalb EINER CMD-Zeile nicht funktionieren, auch wenn die Zeile optisch auf DIN A4 Hochkant gezogen wird.
Wollen wir da ein ..
...draus machen?
Habe ich aber auch eben erst gesehen- - soweit hatte ich noch nicht gelesen...
Grüße
Biber
...nicht hauen jezz', aber...
...
if %errorlevel% == 1 goto:PCAus
...
Wollen wir da ein ..
...
if errorlevel 1 goto:PCAus
...
Habe ich aber auch eben erst gesehen- - soweit hatte ich noch nicht gelesen...
Grüße
Biber
@Biber
Also ich verwende das in einer Batch von mir so und da Funktionierts eigentlich bischer immer.
@ne0trace
Versuchs mal so:
Also ich verwende das in einer Batch von mir so und da Funktionierts eigentlich bischer immer.
@ne0trace
Versuchs mal so:
rem @echo off
FOR /f %%f IN (AlleRechner.txt) DO (
ping -n 1 -w 1 %%f >NUL && (
FOR /f %%i IN (font.txt) DO (
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert)
)
)
)