从批处理文件运行vbscript

use*_*197 25 vbscript 32-bit batch-file syswow64 32bit-64bit

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

@echo off
%WINDIR%\SysWOW64\cmd.exe
cscript necdaily.vbs
Run Code Online (Sandbox Code Playgroud)

但是vbscript没有执行,只是命令提示符已打开.任何人都可以告诉我如何在运行此批处理文件时执行vbscript?谢谢.

dbe*_*ham 41

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

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

如果您希望VBS在同一窗口中同步运行,那么

@echo off
pushd %~dp0
cscript necdaily.vbs
Run Code Online (Sandbox Code Playgroud)

如果您希望VBS在新窗口中同步运行,那么

@echo off
pushd %~dp0
start /wait "" cmd /c cscript necdaily.vbs
Run Code Online (Sandbox Code Playgroud)

如果您希望VBS在同一窗口中异步运行,那么

@echo off
pushd %~dp0
start /b "" cscript necdaily.vbs
Run Code Online (Sandbox Code Playgroud)

如果您希望VBS在新窗口中异步运行,那么

@echo off
pushd %~dp0
start "" cmd /c cscript necdaily.vbs
Run Code Online (Sandbox Code Playgroud)

  • @用户918197 - ??? 他们为我工作。也许您的 VBS 仅在当前目录与 VBS 位置匹配时才起作用。尝试我对答案所做的编辑。 (2认同)

use*_*197 9

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

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs
Run Code Online (Sandbox Code Playgroud)


小智 7

只需尝试以下代码:

启动“”“C:\Users\DiPesh\Desktop\vbscript\welcome.vbs”

并另存为 .bat,它对我有用


Nic*_*tok 5

批处理文件逐行处理,并在您直接调用可执行文件时终止.
- 要使批处理文件等待进程终止并继续,请将其call置于前面.
- 要使批处理文件继续而不等待,请放在start ""它前面.

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

@call cscript"%~dp0necdaily.vbs"

(因为这是一行,你可以使用@而不是@echo off)

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

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

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