2014-05-08 117 views
0

我正在制作一个批处理文件,它接受来自用户的命令以及参数/参数,然后执行所需的操作。如何将批处理变量传递给VBScript文件?

目前,我有(基本):

@echo off 
set "commands=open archive decrypt encrypt" 

set /p CASK=^> 
echo %CASK%>TempUserCommand.txt 
for /f "delims= " %%c in (TempUserCommand.txt) do set COMMAND=%%c 
for /f "tokens=2" %%p in (TempUserCommand.txt) do set PARAM=%%p 
del TempUserCommand.txt 

for %%i in (%commands%) do (
    if "%%i"=="%COMMAND%" set C=%%i 
) 

if not "%C%"=="" (
    ::here is where I would like help 
) else (
    echo That is not a recognised command. 
) 

我想要做的是,在if声明(或其他地方,如果这将是一个更好的地方做),是送变量%C%%PARAM%更改为.vbs文件,以便我可以在"SelectCase" statement(几乎是一个switch语句)中对它进行求值,以找出它是什么命令,然后执行一些操作(可能是编辑目录)。

我已经看到了关于这个主题的一些问题,但是我根本不理解它们,并且真的会幻想一个简单的,简单的和解释性的答案。

谢谢。

回答

1

如果我理解你正确,我想你想做的是从批处理脚本调用VBS文件时传递参数。

然后就可以在VBScript访问这些参数是这样的:

Select Case WScript.Arguments(0) 
    Case "Yes" 
     MsgBox "Argument is 'Yes'" 
    Case "No" 
     MsgBox "Argument is 'No'" 
End Select 

的参数被零索引,所以第一个参数为0(如在上述我的例子示出)中,第二 - 如果你提供它 - 将是1,依此类推。

这里是你如何调用从批处理文件中的脚本,并提供一个参数的例子:

CScript.exe "MyScript.vbs" "Yes" 

注意,这个假设,我认为,脚本是在同一目录下批脚本。如果脚本位于另一个目录中,则始终可以提供脚本所在目录的完整路径。

+0

请问您能展示如何在批处理中调用vbs文件吗? – theonlygusti

+0

@theonlygusti - 我已经更新了我的答案。 –

+0

所以是的论点? – theonlygusti

相关问题