vancouverona
Goto Top

Klammersetzung in Windows Batch Script

Hallo zusammen,

Kann man innerhalb einer IF Klammerung For Do Klammerungen nutzen? Oder fällt Windows dabei auf's Gesicht?

Beispiel:
Wenn eine Variable PrintPDF gesetzt ist, sollen bestimmte Dateitypen per Adobe gedruckt werden. Das Ping ist als kleine Bremse drin, damit Acrobat in Ruhe starten und drucken kann.

Code sieht folgendermaßen aus:

IF (%PrintPDF%)==(YES) (
	For %a in (LS*.pdf) Do (
		"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t "%%a"  
		ping -n 10 localhost 
	)
	For %a in (RG*.pdf) Do (
		"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t "%%a"  
		ping -n 10 localhost 
	)
)

Funktioinert das so? Oder hab' ich da 'nen Denkfehler?

Content-Key: 276059

Url: https://administrator.de/contentid/276059

Printed on: April 16, 2024 at 14:04 o'clock

Mitglied: 114757
Solution 114757 Jun 30, 2015 updated at 16:17:48 (UTC)
Goto Top
Moin
Zitat von @Vancouverona:
Kann man innerhalb einer IF Klammerung For Do Klammerungen nutzen?
Ja kannst du
Funktioinert das so? Oder hab' ich da 'nen Denkfehler?
Bei den Laufvariablen (%a) hast du das Prozentzeichen nicht verdoppelt ...
Ansonsten kein Problem, du kannst sogar einen else-Teil machen:
if .... == ... (
   REM Mach hier was
) else (
   REM mach hier was anderes
)
(hier nur darauf achten das zwischen dem wort else und den Klammern ein Leerzeichen stehen muss.)

Für die Variablenzuweisung innerhalb von Schleifen beachte aber bitte das du dort eventuell DelayedExpansion benötigst.

Gruß jodel32
Member: Vancouverona
Vancouverona Jun 30, 2015 at 16:21:20 (UTC)
Goto Top
Das mit dem ELSE kannte ich, macht aber in meinem Zusammenhang keinen Sinn. An andere Stelle nutze ich das auch.

Ich war mir nur mit der verschachtelten Klammersetzung nicht ganz sicher.

Mit dem "%a" hast Du natürlich recht. Ist ein Tippfehler. Im Adobeaufruf steht dann auch schon "%%a".

Danke trotzdem.