2011-02-01 152 views
1

我有一個.bat,它設置了一個允許用戶爲特定作業執行幾個python腳本的環境。我的目標是創建腳本的鏈接。蝙蝠腳本鏈接到python腳本

例如,用戶運行.bat,彈出一個cmd窗口,而不是鍵入python theLongestPythonScriptNameInTheWorld.py他鍵入python go

我的目標平臺是Windows XP,所以mklink不會在這裏工作。我不想用fsutil hardlink。此外,我只是嘗試set ok=theLongestPythonScriptNameInTheWorld.py,但是id寧可避免用戶輸入python %go%(模數,因爲如果我被要求輸入模數,會使我感到厭煩)。我也想避免WSH,因爲我希望它能在本地XP安裝上運行。

mklink,fsutil,setWSH之外是否還有其他解決方案?

+0

他們爲什麼要輸入任何內容?爲什麼不直接運行python腳本? – Gerrat 2011-02-01 05:48:44

+0

@Gerrat這些腳本是需要參數的cli實用程序。 – sbartell 2011-02-01 05:59:01

回答

3

您的批處理文件可能需要一個參數,並用它來決定要運行哪個Python包。

@echo off 
REM Set Environment Here 
if %1=="GO" python yourLongestScriptNameInTheWorld.py %2 %3 %4 %5 
if %1=="STOP" python anotherScript.py %2 %3 %4 %5 

因此,如果批處理文件名爲foo.bat他們可以輸入:

foo GO arg1 arg2 arg3 

另外,如果你不希望用戶傳遞參數給bat文件(比如,你是從圖標快捷方式運行它),您可以提示用戶使用CHOICE命令從列表中選擇Python包。

我相信你最終會意識到你正在使用一種非常蹩腳的腳本語言來運行你最喜歡的腳本語言,並決定去做所有這些Python而不是Batch命令語言。

0

當我爲自己做類似的事情時,我只創建了幾個批處理文件。

例如,你可以提供一個py_go.bat調用python theLongestPythonScriptNameInTheWorld.py

1

如果你想輸入python go,我能想到的唯一的辦法就是你的腳本重命名爲go

或者,像大多數其他人都做了,創建一個名爲go.bat腳本,有如下內容:

@echo off 
python yourLongestScriptNameInTheWorld.py %* 

你可在此批處理文件的環境中,然後運行go [your_args]。這對用戶來說甚至不那麼打字。