2014-05-08 162 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

相關問題