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

Batch Programmierung mit Abfragen

Frage Entwicklung Batch & Shell

Mitglied: JimPiet

JimPiet (Level 1) - Jetzt verbinden

31.08.2012 um 10:30 Uhr, 3485 Aufrufe, 6 Kommentare

Hallo,

ich versuche mittels WMI und Batch Die Auflösung auszulesen und jeweils eine Datei für die Höhe und die Breite mit dem jeweiligen Wert auszugeben.
Der WMI-Teil funktioniert schon und das auslesen der Daten aus den erzeugten Text-Dokumenten klappt auch.

Nun kriege ich es nicht hin (da ich eher weniger Komplexe Batch-Skripte bisher erstellt habe), dass er je nach Inhalt der Text-Dateien auch die am Ende benötigten Text-Dateien zu erstellen.

Es geht darum, dass wir 4:3 und 16:9 Monitore verwenden und im ganzen Unternehmen einheitliche Desktop-Hintergründe verteilt werden sollen. Damit jeder PC das richtige Wallpaper bekommt, soll die Verteilungsregel prüfen, ob Datei X und Datei Y vorhanden ist, wenn ja: Nimm Bild1 (das ist aber nicht relevant für das Problem)

Habe schonmal angefangen, etwas zu programmieren:

01.
del c:\scripts\h.txt 
02.
del c:\scripts\w.txt 
03.
cscript c:\scripts\monitorw.vbs>c:\scripts\w.txt 
04.
cscript c:\scripts\monitorh.vbs>c:\scripts\h.txt 
05.
cd c:\scripts 
06.
IF findstr /S /M "1920" w.txt goto 1920>c:\scripts\w1920.txt 
07.
REM 1920x1200 
08.
REM 1920x1080 
09.
IF findstr /S /M "1280" w.txt goto 1280>c:\scripts\w1280.txt 
10.
REM 1280x1024 
11.
REM 1280x960 
12.
REM 1280x800 
13.
REM 1280x768 
14.
IF findstr /S /M "1680" w.txt goto 1680>c:\scripts\w1680.txt 
15.
REM 1680x1050 
16.
IF findstr /S /M "1152" w.txt goto 1152>c:\scripts\w1152.txt 
17.
REM 1152x864 
18.
REM 1152x720 
19.
IF findstr /S /M "1400" w.txt goto 1400>c:\scripts\w1400.txt 
20.
REM 1400x1050 
21.
IF findstr /S /M "1440" w.txt goto 1440>c:\scripts\w1440.txt 
22.
REM 1440x900 
23.
IF findstr /S /M "1600" w.txt goto 1600>c:\scripts\w1600.txt 
24.
REM 1600x900 
25.
IF findstr /S /M "1024" w.txt goto 1024>c:\scripts\w1024.txt 
26.
REM 1024x768 
27.
 
28.
 
29.
 
30.
:1920 
31.
IF findstr /S /M "1200" h.txt>c:\scripts\h1200.txt 
32.
IF findstr /S /M "1080" h.txt>c:\scripts\h1080.txt 
33.
:END 
34.
 
35.
 
36.
:1280 
37.
IF findstr /S /M "1024" h.txt>c:\scripts\h1024.txt 
38.
IF findstr /S /M "960" h.txt>c:\scripts\h960.txt 
39.
IF findstr /S /M "800" h.txt>c:\scripts\h800.txt 
40.
IF findstr /S /M "768" h.txt>c:\scripts\h800.txt 
41.
:END 
42.
 
43.
 
44.
:1680 
45.
IF findstr /S /M "1050" h.txt>c:\scripts\h1050.txt 
46.
:END 
47.
 
48.
 
49.
:1152 
50.
IF findstr /S /M "864" h.txt>c:\scripts\h864.txt 
51.
IF findstr /S /M "720" h.txt>c:\scripts\h720.txt 
52.
 
53.
 
54.
:1400 
55.
IF findstr /S /M "1050" h.txt>c:\scripts\h1050.txt 
56.
 
57.
:1440 
58.
IF findstr /S /M "900" h.txt>c:\scripts\h900.txt 
59.
 
60.
:1600 
61.
IF findstr /S /M "900" h.txt>c:\scripts\h900.txt 
62.
 
63.
:1024 
64.
IF findstr /S /M "768" h.txt>c:\scripts\h768.txt
Ich vermute mal, dass ich da mit der IF Abfrage falsch gemacht habe.
Über Verbesserungsvorschläge oder andere Möglichkeiten, dies umzusetzen, wäre ich sehr erfreut

LG
JimPiet
Mitglied: SteinBeiser
31.08.2012 um 11:13 Uhr
findstr in der zeile vor dem if ohne /S /M
im if errorlevel abfragen 0 = wert gefunden 1 = nicht gefunden.
Bitte warten ..
Mitglied: bastla
31.08.2012 um 12:12 Uhr
... oder besser gleich so:
findstr "1920" w.txt && goto :1920
Grüße
bastla
Bitte warten ..
Mitglied: JimPiet
31.08.2012 um 12:19 Uhr
Vielen Dank,
habe es jetzt mit dem errorlevel gemacht und es klappt
Bitte warten ..
Mitglied: 60730
31.08.2012, aktualisiert um 13:46 Uhr
Salü,

Zitat von bastla:
... oder besser gleich so:
findstr "1920" w.txt && goto :1920 
> 

oder gleich so:
C:\>for %a in (1024 1400 1440 1600 1680 1920) do findstr "%a" c:\scripts\h.txt && goto %a
wobei das a) wegen dem einen % nur ne Demo für die Dosbox ist und b) derzeit ja eh nur noch eine weitere nicht schlüssige Abfrage in dem Sprungziel steckt und keine echte Aktion.

btw:
Wenn du sowas machst:
cscript c:\scripts\monitorw.vbs>c:\scripts\w.txt
mit einer pipe, dann brauchst du vorher kein
del c:\scripts\w.txt

Gruß
Bitte warten ..
Mitglied: JimPiet
31.08.2012 um 14:50 Uhr
Ahhhhh, gut zu wissen, danke
Bitte warten ..
Mitglied: AndreasHoster
31.08.2012, aktualisiert um 15:13 Uhr
Und ich frage mich, was das Ganze soll.
Ich würde die VBS so programmieren, daß die gleich die h???? und w???? Dateien schreibt.
Dann könnte man sich 64 Zeilen Batchcode sparen. Schließlich hat man dort ja die Werte für Höhe und Breite schon.

Kurz zusammengeschustert (gibt auch nur den primären Monitor aus):
01.
Pfad="C:\temp\" 
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
04.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor where DeviceID='DesktopMonitor1'", "WQL") 
05.
For Each objItem In colItems 
06.
         Set ofile = fso.CreateTextFile(Pfad & "h" & objItem.ScreenHeight & ".txt", True) 
07.
         ofile.WriteLine "Hier steht, was in der Datei stehen sollte." 
08.
	ofile.Close 
09.
	Set ofile = fso.CreateTextFile(Pfad & "w" & objItem.ScreenWidth & ".txt", True) 
10.
	ofile.WriteLine "Hier steht, was in der Datei stehen sollte." 
11.
	ofile.Close 
12.
Next
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

Batch & Shell
Neue Zeile verhindern (Batch)

Frage von clragon zum Thema Batch & Shell ...

Microsoft
Batch kombiniert mit PDFCreator

Frage von Sascha123456 zum Thema Microsoft ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Server mit Netzwerkaussetzern (17)

Frage von SarekHL zum Thema Windows Server ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...