强制bat文件使用非默认cmd.exe

时间:2011-10-27 14:48:48

标签: batch-file cmd

我正在写一个.bat文件来自动处理一些脚本生成,所以每次我想运行它时都不必输入六个命令参数。

我必须从批处理文件

运行vb脚本
@call ..\Database\scripts\runscriptupdates.vbs

但是,只有使用

中的命令提示符才会运行脚本
C:\Windows\SysWOW64\cmd.exe

默认情况下,bat文件使用system32中的cmd.exe

C:\Windows\System32\cmd.exe

有没有办法强制批处理文件使用此cmd.exe来运行vbs文件?我一直在网上搜索大约一个小时,但没有发现任何有用的东西(到目前为止)。

我尝试用“start ...”运行syswow64但是它似乎没有接受它之后的参数。

非常感谢,Neil

3 个答案:

答案 0 :(得分:3)

您可以尝试:

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

这将从32位命令提示符运行批处理本身。因此,对vbs的调用也将来自32位命令提示符。

答案 1 :(得分:1)

我也有这个问题,我找到了解决问题的方法 您只需要更改System Variables

转到控制面板»系统»高级系统设置»环境变量

找到变量ComSpec,然后点击修改... 并将路径更改为"C:\Windows\SysWow64\cmd.exe"

答案 2 :(得分:0)

尝试在批处理文件中输入这一行。

%windir%\ SysWoW64 \ cmd.exe / c [“] cscript [脚本名称] [主机选项] [脚本参数 ] [“]

其中:

  • 脚本名称是脚本文件的名称,包括文件扩展名和任何必要的路径信息。

  • 主机选项是启用或禁用各种Windows脚本宿主功能的命令行开关。主机选项总是以两个斜杠开头(//)。

  • 脚本参数是传递给脚本的命令行开关。脚本参数总是以斜杠(/).

  • 开头

示例:

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

注意:在这一行中,我没有传递任何主机选项。该命令将执行字符串

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

作为32位命令提示符中的命令。