28

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

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

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

4

6 回答 6

48

您可以使用%~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
于 2012-08-10T21:50:35.630 回答
9

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

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs
于 2012-08-21T00:24:00.310 回答
5

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

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

@call cscript "%~dp0necdaily.vbs"

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

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

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

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

于 2014-12-04T09:46:24.210 回答
5

试试这个代码:

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

并另存为.bat,它适用于我

于 2015-07-29T13:49:32.350 回答
1

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

设置应用程序数据=%CD%

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

于 2013-11-19T02:51:25.970 回答
0

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

start cscript C:\filePath\File.vbs
于 2021-10-25T13:10:49.137 回答