Batch Parameter zum starten im Skript intern

Smustyle

Newbie
Registriert
Juli 2009
Beiträge
5
Guten Morgen!!

Ich wollte fragen, ob es möglich ist Parameter zum starten der Datei im Skript intern zu definieren?

Meine Parameter:

Code:
cmd /v:on /c "PfadZurDatei"

Ich will das /v:on im Skript intern haben. D.h. wenn ich Die *.bat Datei mit Doppelklick öffne dann soll er direkt mit diesen Parametern starten.

Danke für eure Hilfe!!:)
 
Eine Lösung, die mir einfallen würde, wäre die Verwendung der Umgebungsvariable "comspec", damit könntest du eventuell Erfolg haben. Ich überlege grade nur, ob es Sinn macht die Umgebungsvariable direkt in Windows zu setzen (dann betrifft es aber alle CMD-Prozesse), oder aber direkt zu Beginn des Skripts mittels SET die Umgebungsvariable zu setzen - ich vermute dann aber, dass die Umgebungsvariable in diesem Fall nicht für das Skript verantwortlich wäre. Das könnte man aber wieder umgehen, indem man ein SET-Skript dem eigentlichen Skript vorschiebt... kompliziert kompliziert ^^

/edit: noch eine Lösung wäre, für das Skript eine eigene Erweiterung zu schaffen und dieser die Ausführung mit CMD und eben /v:on zuzuweisen. Dann klappt es zumindest per Doppelklick, nicht aber wenn das Skript aus anderen Batchfiles heraus aufgerufen wird.
 
Zuletzt bearbeitet:
Ich komme bei deiner Lösung nicht ganz nach. Sorry

Also ich sollte am Anfang meines Skriptes versuchen die Umgebungsvariable zu deklarieren?

Code:
set comspec
 
Vorweg: hab noch ne andere Idee: mach einfach eine Verknüpfung vom CMD, gib ihr den Parameter und den Pfad zu deinem Batchfile mit und fertig. Klappt dann halt nur bei Doppelklick auf die Verknüpfung, nicht bei Aufruf des Batchs alleine.

Zu der Sache mit der Umgebungsvariable: comspec ist standardmäßig schon definiert, aber du könntest es ja erweitern und dann rufst du dein Skript auf:

Code:
set comspec=%comspec% /v:on
xyz
wobei xyz für dein eigentliches Skript steht. Eventuell musst du dein Skript direkt über CMD aufrufen, also statt "xyz" eben "cmd xyz", musst mal ausprobieren.
 
Zuletzt bearbeitet:
Na uf diese Idee mit der Verknüpfung bin ich auch schon gekommen.

Aber ich muss die *.bat Datei von einem VB6 Programm starten. Deshalb kommt eine Verknüpfung nicht in frage.

Code:
set comspec=%comspec% /v:on

Es funktioniert bei mir nicht. Der Parameter wird nicht eingebunden. Gleiches Resultat wie ganz Normal starten!!

Oder muss man %comspec% dann irgendwo noch aufrufen?

Oh sorry. Habe deine änderung erst jetzt gesehen.
 
Zuletzt bearbeitet:
Wie ich oben noch hineineditiert habe, kannst du noch ausprobieren dein Skript dann in dem Skript über CMD zu starten. Damit sollte eine neue Instanz von CMD geladen werden für die der Parameter gültig ist.

Passiert das nicht, könntest du den Parameter auch global so ändern - aber dann würde er alle deine Skripte und Eingabeaufforderungen betreffen (Globale Änderungen macht man über die Eigenschaften des Arbeitsplatzes->Erweitert->Umgebungsvariablen).

Wie sieht es mit der Möglichkeit eines eigenen Dateityps aus? Nimmst halt die Dateiendung ".batv" oder dergleichen und weist ihr die selben Eigenschaften wie dem .bat-Dateitypen zu, nur halt dass zusätzlich zur Angabe des Kommandointerpreters der Parameter /v:on angegeben wird.

/edit:
wie wärs, statt über die Umgebungsvariable einfach den Code (cmd /v:on /c "PfadZurDatei") direkt in eine Batchdatei zu schreiben und diese Batch auszuführen anstatt "PfadZurDatei". Sollte eigentlich das gleiche Ergebnis bringen wie die Änderung der Umgebungsvariable. Weis auch nicht, warum ich auf die einfachen Lösungen immer erst zum Schluss komme ^^
 
Zuletzt bearbeitet:
Ich werde mal versuchen die Umgebungsvariable zu ändern.

Kennst du eine gute Anleitung auf Deutsch oder kannst du mir erklären wie ich einen neuen Dateityp mache?
Und wie ich dann die Eigenschaften von .bat her nehme?

Edit------------

Was muss ich an der Umgebungsvaribel ändern?
 
Zuletzt bearbeitet:
Wie gesagt, probier erstmal folgendes:

datei1.bat:
Code:
[I]cmd /v:on /c "datei2.bat"[/I]
datei2.bat
Code:
Hier stünde dein Skript
Wenn du jetzt über VB die Datei1.bat aufrufst, klappt es dann?


An der (globalen) Umgebungsvariable müsstest du hinter dem Pfad zum Kommandointerpreter halt noch das /v:on setzen. Aber wie gesagt, probier erstmal die 2-Dateien-Methode. Denn die Variante über die globale UV sollte das letzte Mittel sein.
 
So nun bin ich wieder da. Habe kurz Mittag gemacht.

Das eigentliche Skript über eine 2. *.bat Datei funktioniert.

Danke schonmals für diese Lösung..:):)
 
Zurück
Oben