我正在创建一个批处理文件,它接收来自用户的命令以及参数/参数,然后执行所需的操作。
目前我(基本上):
@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语句)中对其进行评估,以找出它是什么命令,然后执行一些操作(可能是编辑目录)。
我已经看过关于这个主题的一些问题,但我根本不理解它们,并且真的会提出一个简单,愚蠢和解释性的答案。
谢谢。
答案 0 :(得分: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"
注意,我认为这假定脚本与批处理脚本位于同一目录中。如果脚本位于另一个目录中,您始终可以提供脚本所在目录的完整路径。