Top-Themen

Aktuelle Themen (A bis Z)

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, 3510 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
Batch Programmierung IF Abfragen
gelöst Frage von PanubuBatch & Shell8 Kommentare

Hallo zusammen, ich möchte gerne einige IF-Abfragen in einer Batch programmieren, was allerdings nicht so möchte wie ich. Er ...

Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch
Frage von DaTobsnBatch & Shell3 Kommentare

Ich habe in einem Ordner verschiedene txtDateien, welche verschiedenes enthalten. Ich will in ALLEN txtDateien nach etwas zuvor durch ...

Windows Tools
Wenn Abfrage mit PS oder Batch
gelöst Frage von CitytowWindows Tools7 Kommentare

Hallo Liebe Community, hat einer von euch eine Idee, wie man eine WENN Abfrage in einer PS oder Batch ...

Batch & Shell
Batch-Datei: Benutzer-Abfrage
gelöst Frage von Axel90Batch & Shell7 Kommentare

Hallo zusammen! Ich habe bei Google keine Lösung für mein Anliegen gefunden: Ich möchte in einer Batch-Datei (Login-Sequenz) eine ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 10 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 12 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...