【问题标题】:Force bat file to use non default cmd.exe强制 bat 文件使用非默认的 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,但它似乎没有接受它之后的参数。

非常感谢,尼尔

【问题讨论】:

    标签: batch-file cmd


    【解决方案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 位命令提示符中的命令。

      【讨论】:

        猜你喜欢
        • 2013-02-20
        • 1970-01-01
        • 2014-04-18
        • 2023-03-09
        • 2016-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多