Forceer het bat-bestand om niet-standaard cmd.exe te gebruiken

Ik ben bezig met het schrijven van een .bat-bestand om automatisch een aantal script-generaties te verwerken, zodat ik niet telkens een half dozijn opdrachtargumenten hoeft in te typen als ik het wil uitvoeren.

Ik moet een vb-script uitvoeren vanuit het batchbestand

@call ..\Database\scripts\runscriptupdates.vbs

Het script wordt echter alleen uitgevoerd als de opdrachtprompt wordt gebruikt

C:\Windows\SysWOW64\cmd.exe

Standaard gebruikt het bat-bestand de cmd.exe in system32

C:\Windows\System32\cmd.exe

Is er een manier om het batchbestand te dwingen dit cmd.exe te gebruiken om het vbs-bestand uit te voeren? Ik ben nu ongeveer een uur lang op internet aan het surfen en heb niets gevonden dat (tot nu toe) helpt.

Ik heb geprobeerd de syswow64 uit te voeren met "start ..." maar het lijkt erop dat de argumenten erna niet worden gebruikt.

Hartelijk dank, Neil

3

3 antwoord

Je kan het proberen:

%windir%\SysWoW64\cmd.exe /c mybatch.bat

Hiermee wordt de batch zelf uitgevoerd vanaf een 32-bits opdrachtprompt. Dus de oproep naar je vbs komt ook van een 32-bits opdrachtprompt.

3
toegevoegd
Dit doet de truc, opent het nieuwe venster en dan draait alles zoals het hoort. Het zou leuk zijn om het in één batchbestand te kunnen doen, dus ik laat de vraag een dag open voordat ik een antwoord kan kiezen. Nogmaals bedankt voor de hulp!
toegevoegd de auteur Neil, de bron

I also had this problem, and I found the way to solve it.
You just need to change System Variables.

Ga naar Configuratiescherm » Systeem » Geavanceerde systeeminstellingen » Omgevingsvariabelen .

Find the variable ComSpec, then just click Edit... and change the path to "C:\Windows\SysWow64\cmd.exe"

1
toegevoegd

Probeer deze regel in uw batchbestand te typen.

% windir% \ SysWoW64 \ cmd.exe/c ["] cscript [ scriptnaam ] [ hostopties ] [ scriptargumenten ] [" ]

Waar:

  • scriptnaam is de naam van het scriptbestand, inclusief de extensie en eventueel benodigde padinformatie.

  • hostopties zijn de opdrachtregelschakelaars waarmee verschillende Windows Script Host-functies kunnen worden in- of uitgeschakeld. Host-opties worden altijd voorafgegaan door twee slashes (//).

  • scriptargumenten zijn de opdrachtregelopties die worden doorgegeven aan het script. Scriptargumenten worden altijd voorafgegaan door één schuine streep (/).

Voorbeeld:

% windir% \ SysWoW64 \ cmd.exe/c "cscript VoltageDrop.vbs /"Campbell.sin "" L08 " "

Opmerking: in deze regel geef ik geen enkele host-optie door. Deze opdracht voert de string uit,

cscript VoltageDrop.vbs /"Campbell.sin "" L08 "

als een opdracht in de 32-bits opdrachtprompt.

0
toegevoegd