【问题标题】:Running vbscript from batch file从批处理文件运行 vbscript
【发布时间】:2012-08-07 15:23:51
【问题描述】:

我只需要编写一个简单的批处理文件来运行一个 vbscript。 vbscript 和批处理文件都在同一个文件夹中,并且在 SysWOW64 目录中,因为 vbscript 只能在该目录中执行。目前我的批处理文件如下:

@echo off
%WINDIR%\SysWOW64\cmd.exe
cscript necdaily.vbs

但是 vbscript 没有执行,只是打开了命令提示符。谁能告诉我在运行这个批处理文件时如何执行 vbscript?

【问题讨论】:

    标签: vbscript batch-file 32bit-64bit 32-bit syswow64


    【解决方案1】:

    您可以使用%~dp0获取当前运行的批处理文件的路径。

    编辑后在运行前将目录更改为 VBS 位置

    如果你想让VBS在同一个窗口同步运行,那么

    @echo off
    pushd %~dp0
    cscript necdaily.vbs
    

    如果你想让VBS在新窗口中同步运行,那么

    @echo off
    pushd %~dp0
    start /wait "" cmd /c cscript necdaily.vbs
    

    如果你想让VBS在同一个窗口异步运行,那么

    @echo off
    pushd %~dp0
    start /b "" cscript necdaily.vbs
    

    如果你想让 VBS 在新窗口中异步运行,那么

    @echo off
    pushd %~dp0
    start "" cmd /c cscript necdaily.vbs
    

    【讨论】:

    • @user918197 - ???他们为我工作。也许您的 VBS 仅在当前目录与 VBS 位置匹配时才有效。试试我对答案所做的修改。
    • 它与 32 位或 64 位有什么关系,因为我的 vbscript 无法在 64 位的 Windows Server 2008 R2 中运行,那就是复制包含 vbscripts 的整个文件夹进入 SysWOW64 目录,当我输入命令 cscript necdaily.vbs 但不在批处理文件中时,它能够运行。
    • 使用pushd 会更改您的工作目录,这可能是不可取的。最好做cscript "%~dp0necdaily.vbs"。注意%~dp0necdaily.vbs 之间没有反斜杠。
    【解决方案2】:

    这是批处理文件的命令,它可以运行 vbscript。

    C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs
    

    【讨论】:

      【解决方案3】:

      批处理文件逐行处理,并在您直接调用可执行文件时终止。
      - 要让批处理文件等待进程终止并继续,请将call放在它前面。
      - 要使批处理文件无需等待即可继续执行,请将start "" 放在其前面。

      我建议使用这个单行脚本来实现您的目标:

      @call cscript "%~dp0necdaily.vbs"

      (因为这是单行,所以可以用@代替@echo off)

      如果您认为您的脚本只能从 cmd.exe 的 SysWOW64 版本调用,您可以尝试:

      @%WINDIR%\SysWOW64\cmd.exe /c call cscript "%~dp0necdaily.vbs"

      如果需要保留窗口,可以将 /c 替换为 /k

      【讨论】:

      • 对于第一个命令,可能甚至不需要 call。没有它,脚本也会同步执行。通常call 用于调用第二个batch 脚本,而不会混合执行上下文。所以,一个小小的@cscript "%~dp0necdaily.vbs" 就可以完成这项工作。
      【解决方案4】:

      试试这个代码:

      开始 "" "C:\Users\DiPesh\Desktop\vbscript\welcome.vbs"

      另存为.bat,对我有用

      【讨论】:

        【解决方案5】:

        我正在尝试在批处理文件中打开一个 .vbs 而不必单击打开,但这个问题的答案是......

        SET APPDATA=%CD%

        开始(如果是 vbd 文件,您的文件在此处不带括号,带有 .vbs)

        【讨论】:

          【解决方案6】:

          您应该将 .bat 文件与 .vbs 文件放在同一文件夹中,并在 .bat 文件中调用以下代码。

          start cscript C:\filePath\File.vbs
          

          【讨论】:

            猜你喜欢
            • 2015-05-12
            • 2015-04-19
            • 2020-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-18
            • 2011-10-29
            • 2011-02-07
            相关资源
            最近更新 更多