per bat datei mehrzelige vbs datei schreiben?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
echo irgendwas >"meine Datei.vbs"
echo nochwas (mit Klammer) >>"meine Datei.vbs"
echo eine weitere Zeile >>"meine Datei.vbs"
echo und so weiter >>"meine Datei.vbs"

Alternativ :

@echo off
(echo irgendwas
echo nochwas ^( mit Klammer^)
echo eine weitere Zeile
echo und so weiter) >"meine Datei.vbs"

Hier ist das ausschalten des Prompt mit @echo off extrem wichtig, denn bei dieser Art der AusgabeUmleitung eines ganzen Codeblocks am Stück würde auch der Prompt am Anfang der Zeile in die Datei umgeleitet.

Ein weiterer Fallstrick sind Klammern innerhalb eines Codeblocks. Der Batchparser kann nicht unterscheiden welche Klammern zum Batchcode gehören und welche einfach nur Text sind. Textklammern müssen inner halb von Klammern eines Codeblocks versteckt werden. In Batch werden Steuerzeichen wie ()&<>| mit einem Carret^ maskiert zB. ^& ^( ^) ^> ^<.

Ich löse das Problem der mehrteiligen Ausgabe schon seit sehr vielen Jahren, indem ich statt VBScript Javascript verwende (.js -Dateien).

In JavaScript können mehrere Befehle in einer Zeile durch Semikolon ; getrennt werden.

&<>| müssen allerdings auch hier maskiert werden. Backslash \ müssen für JScript verdoppelt werden \\.

CreateJScript.cmd

echo var a=2; var b=3; var c=a×b; Wscript.Echo('Das Ergebnis ist :'+ c); >"mein JScript.js"
cscript /nologo "mein JScript.js"
Pause
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Wenn ich mich richtig erinnere war es:

Echo Code >> Test.vbs

Woher ich das weiß:Hobby – Beschäftige mich mit PC Systemen, Programmen und Hardware