强制 bat 文件使用非默认的 cmd.exe
Posted
技术标签:
【中文标题】强制 bat 文件使用非默认的 cmd.exe【英文标题】:Force bat file to use non default cmd.exe 【发布时间】:2011-12-16 14:14:16 【问题描述】:我正在编写一个 .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,但它似乎没有接受它之后的参数。
非常感谢,尼尔
【问题讨论】:
【参考方案1】:你可以试试:
%windir%\SysWoW64\cmd.exe /c mybatch.bat
这将从 32 位命令提示符运行批处理本身。因此,对 vbs 的调用也将来自 32 位命令提示符。
【讨论】:
这可以解决问题,打开新窗口,然后一切正常运行。能够在一个批处理文件中完成它会很好,所以我会在选择答案之前将问题保留一天。再次感谢您的帮助!【参考方案2】:我也遇到了这个问题,我找到了解决方法。
你只需要更改System Variables
。
转到控制面板 » 系统 » 高级系统设置 » 环境变量。
找到变量ComSpec
,然后只需点击Edit...并将路径更改为"C:\Windows\SysWow64\cmd.exe"
【讨论】:
【参考方案3】:尝试在批处理文件中输入这一行。
%windir%\SysWoW64\cmd.exe /c ["]cscript [脚本名称] [主机选项] [脚本参数 ]["]
地点:
script name 是脚本文件的名称,包括文件扩展名和任何必要的路径信息。
主机选项是启用或禁用各种 Windows 脚本主机功能的命令行开关。主机选项前面总是有两个斜杠 (//)。
脚本参数是传递给脚本的命令行开关。脚本参数前面总是有一个斜杠 (/)。
例子:
%windir%\SysWoW64\cmd.exe /c "cscript VoltageDrop.vbs /"Campbell.sin" "L08""
注意:在这一行中,我没有传递任何主机选项。该命令将执行字符串,
cscript VoltageDrop.vbs /"Campbell.sin" "L08"
作为 32 位命令提示符中的命令。
【讨论】:
以上是关于强制 bat 文件使用非默认的 cmd.exe的主要内容,如果未能解决你的问题,请参考以下文章