2014-12-13 108 views
1

我面臨着以下問題,同時通過VBS用戶輸入PARAMATERS到批處理腳本:從VBS(用於輸入)將參數傳遞給批處理腳本不工作

  1. 用戶輸入的兩個參數要求不止一次用戶
  2. 參數不傳遞給批處理腳本

這是我的腳本:

@echo off 
setlocal EnableDelayedExpansion 

>>usermessage.vbs ECHO WScript.Echo InputBox("From_date", "para1", "DD-MMM-YYYY") 
>>usermessage.vbs ECHO WScript.Echo InputBox("To_date", "para2", "DD-MMM-YYYY") 

set i=0 

FOR /F "tokens=*" %%A IN ('CSCRIPT.EXE //NoLogo usermessage.vbs') DO (
    set /A i+=1 
    SET para!i!=%%A 
) 

ECHO para1= %para1% 
ECHO para2= %para2% 

call path\name.bat '%para1%' '%para2% 23:59:59' 

DEL usermessage.vbs 

exit 
+0

參數應該傳遞給'name.bat'就好了,但是你的引用是錯誤的。單引號在批處理腳本中不是有效的引號字符。用雙引號替換它們,然後重試。如果它仍然不起作用:顯示'name.bat'的內容以及您收到的任何錯誤消息。 – 2014-12-13 17:19:27

+0

非常感謝Ansgar。它工作正常,但參數要求用戶對兩個參數的使用次數超過三次。實際上,這兩個參數只需要一次用戶。請幫我解決這個問題。 – user2376622 2014-12-13 18:46:45

+2

'> usermessage.vbs ...'而不是**第一個**'>> usermessage.vbs ...' – JosefZ 2014-12-13 19:25:57

回答

0

只有雙引號才能在批處理腳本中有效地引用字符,而不是單引號。更換

call path\name.bat '%para1%' '%para2% 23:59:59' 

call path\name.bat "%para1%" "%para2% 23:59:59" 

正如你所期望的參數應該傳遞。

它也可能改變這種一個好主意:

>>usermessage.vbs ECHO WScript.Echo InputBox("From_date", "para1", "DD-MMM-YYYY") 
>>usermessage.vbs ECHO WScript.Echo InputBox("To_date", "para2", "DD-MMM-YYYY") 

到這一點:

>usermessage.vbs ECHO WScript.Echo InputBox("From_date", "para1", "DD-MMM-YYYY") 
>>usermessage.vbs ECHO WScript.Echo InputBox("To_date", "para2", "DD-MMM-YYYY") 

因爲>>重定向操作符追加到已經存在的文件,而不是替換它。如果由於某種原因usermessage.vbs在上次運行中未被刪除,您將獲得其他輸入對話框。 >重定向操作符會截斷已存在的文件,解決此問題。

+0

非常感謝Ansgar幫助我關閉了所有腳本問題。 – user2376622 2014-12-13 21:11:09

相關問題