Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Schriftarten auf Existenz ueberpruefen

Frage Entwicklung Batch & Shell

Mitglied: ne0trace

ne0trace (Level 1) - Jetzt verbinden

11.06.2008, aktualisiert 16.06.2008, 3405 Aufrufe, 12 Kommentare

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?
01.
@echo off 
02.
FOR /f %%f IN (test.txt) DO ( 
03.
FOR /f %%i IN (font.txt) DO ( 
04.
		if exists \\%%f\c$\windows\fonts\%%i (echo %%i ist installiert) 
05.
06.
07.
)
Danke
Felix
Mitglied: miniversum
11.06.2008 um 20:55 Uhr
Verschachtelte For Schleifen gehen.
Wenn du die nötigen Rechte hast sollte das so auch funktionieren. Was vielleicht das Problem sein könnte ist, das du bis zum echo 3 Klammern öffnest, danach aber 4 schließt.
Bitte warten ..
Mitglied: ne0trace
11.06.2008 um 21:06 Uhr
Hallo miniversum,
ich habe die Klammern korrigiert. Leider ist das Ergebnis noch das Gleiche. Die Rechte sind auch nicht das Problem (lokale Adminrechte+Netzwerkadmin).

Gruß Felix
Bitte warten ..
Mitglied: Biber
11.06.2008 um 21:10 Uhr
Moin ne0trace,

alternativ könntest Du das "if exists ..." in ein "if exist ..." ändern...

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
11.06.2008 um 21:22 Uhr
Ach jetzt seh ichs auch. hätte mir auch auffallen können...
Das kommt wohl davon wenn man nicht ganz bei der Sache ist und imemr nur an das eien denkt * zu ofen rüberschieft udn wartet bin ENDLICH die Pizza fertig ist *
Bitte warten ..
Mitglied: ne0trace
12.06.2008 um 14:23 Uhr
Oh sehr cool und vielen Dank. Immer diese gramatikalischen Fehler...

Jetzt habe ich noch einen 2. Fehler in dem Script entdeckt. Leider meint er auch gewisse Schriftarten nicht zu finden wenn der Rechner aus ist. Kann man eine Überprüfung durch einen Ping vorn anstellen?
Hat da jemand eine Idee?


Ich poste hier mal den letzten Stand:

@echo off
FOR /f %%f IN (AlleRechner.txt) DO (
FOR /f %%i IN (font.txt) DO (
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert)
)
)

Danke Felix
Bitte warten ..
Mitglied: miniversum
12.06.2008 um 19:55 Uhr
Ja das geht so:
01.
@echo off 
02.
FOR /f %%f IN (AlleRechner.txt) DO ( 
03.
FOR /f %%i IN (font.txt) DO ( 
04.
ping  -n 1 -w 1 %%f >NUL 
05.
if %errorlevel% == 1 goto:PCAus 
06.
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert) 
07.
:PCAus 
08.
09.
)
Bitte warten ..
Mitglied: Biber
12.06.2008 um 21:27 Uhr
@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
Bitte warten ..
Mitglied: miniversum
12.06.2008 um 21:39 Uhr
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.
01.
@echo off 
02.
FOR /f %%f IN (AlleRechner.txt) DO ( 
03.
ping  -n 1 -w 1 %%f >NUL 
04.
if %errorlevel% == 1 goto:PCAus 
05.
FOR /f %%i IN (font.txt) DO ( 
06.
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert) 
07.
08.
:PCAus 
09.
)
Bitte warten ..
Mitglied: Biber
12.06.2008 um 22:10 Uhr
@miniversum

...nicht hauen jezz', aber...
01.
... 
02.
if %errorlevel% == 1 goto:PCAus  
03.
...
...wird innerhalb EINER CMD-Zeile nicht funktionieren, auch wenn die Zeile optisch auf DIN A4 Hochkant gezogen wird.

Wollen wir da ein ..
01.
... 
02.
if errorlevel 1 goto:PCAus  
03.
...
...draus machen?
Habe ich aber auch eben erst gesehen- - soweit hatte ich noch nicht gelesen...

Grüße
Biber
Bitte warten ..
Mitglied: ne0trace
13.06.2008 um 12:44 Uhr
Hey,
ok ich habe jetzt eure wunderschönen Verbesserungen und Korrekturen eingebaut/umgebaut. Leider bekomme ich jetzt folgende Meldung:

")" ist syntaktisch an dieser Stelle nicht verarbeitbar.


Dies ist mein Code:

01.
rem @echo off 
02.
FOR /f %%f IN (AlleRechner.txt) DO ( 
03.
ping -n 1 -w 1 %%f >NUL 
04.
if errorlevel 1 goto :exit 
05.
FOR /f %%i IN (font.txt) DO ( 
06.
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert) 
07.
08.
:exit 
09.
)
Gruß Felix
Bitte warten ..
Mitglied: miniversum
13.06.2008 um 16:55 Uhr
@Biber
Also ich verwende das in einer Batch von mir so und da Funktionierts eigentlich bischer immer.

@ne0trace
Versuchs mal so:
01.
rem @echo off 
02.
FOR /f %%f IN (AlleRechner.txt) DO ( 
03.
ping -n 1 -w 1 %%f >NUL && ( 
04.
FOR /f %%i IN (font.txt) DO ( 
05.
if not exist \\%%f\c$\windows\fonts\%%i (echo %%i ist nicht installiert) 
06.
07.
08.
)
Bitte warten ..
Mitglied: ne0trace
16.06.2008 um 14:05 Uhr
Wow das wars... Leider kann ich jetzt meine Idee dahinter immer noch nicht überprüfen da alle Maschinen gerade aus sind. ;)

Aber auf jeden Fall mal 1000x Dank für eure Hilfe...

Gruß felix
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Schriftarten
Schriftarten im Unternehmen per GPO verteilen (4)

Frage von Xeidaz zum Thema Schriftarten ...

Batch & Shell
Ghostscript Schriftarten benutzen in powershell RTF - PDF Drucker

Frage von Malli88 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...