2013-02-16 68 views
0

我開發的Windows軟件執行它們,有一個功能我需要「System.Shell.execute」一個批處理文件,但我希望它有兩個功能(參數)如何給參數,批處理文件.BAT與System.Shell.execute

所以,當我執行:

objShell.ShellExecute("file.bat", "PARAMETER1", "", "open", 2);

將運行ŧ他在PAR文件中爲PARAMETER1,副文件爲(參數2)。

我想知道我可以配置我文件,要做到這一點,例如:

@ECHO OFF 

PARAMETER1 

::  execute some code here 

PARAMETER2 

::  execute some code here 

(可能類似的東西?)

回答

1

使用每個功能的批量標籤。只需簡單地按第一批參數指定的標籤即可。每個「功能」可以訪問從%2開始的其他參數。

@echo off 
goto %1 

:PARAMETER1 
REM execute code here 
exit /b 

:PARAMETER2 
REM execute code here 
exit /b 
+0

太謝謝你了! – tofran 2013-02-16 21:36:27

+0

你能回答編輯問題嗎? – tofran 2013-02-17 11:48:27

+2

@tofran - 我不明白你在新的第二個問題中想要做什麼。還有,(好吧)第二個問題。請從這個問題中刪除編輯,然後問一個新的問題,並提供更多的解釋,你正在嘗試做什麼。 – dbenham 2013-02-17 13:06:31

0

我會做我的劇本有一點不同:

@echo off 
goto %1 
goto :end 

:: functions 

:PARAMETER1 comment1 
REM execute code here 
exit /b 0 

:PARAMETER2 comment2 
REM execute code here 
if %ERRORLEVEL%==1 ECHO goto :error 
exit /b 0 

:error 
ECHO Error occurred with arg %1 
timeout 10 
exit 1 

:: end of script 
:end 
ECHO Finished 
+0

您的'goto:end'是死碼,因爲如果標籤不存在,'goto%1'將導致致命錯誤。所以這真的和我的答案沒有什麼不同,只是混淆了一下。在嘗試使用GOTO之前有多種方法來驗證標籤 - 例如,通過IF使用硬編碼標籤字符串,或FINDSTR使用'%〜f0'。但它並沒有真正改變主要概念。 – dbenham 2013-02-16 18:48:03

+0

你能回答編輯問題嗎? – tofran 2013-02-17 11:48:49

+0

你的「set」命令是錯誤的。此外,您已將此問題標記爲已回答。 – djangofan 2013-02-17 19:55:00