2010-12-31 29 views

risposta

44
c:\python27\python.exe c:\somescript.py %* 
+2

Hi MK- Quando apro il Blocco note, incollare la vostra linea in lì e salvarlo e tenta di eseguirlo attraverso l'utilità di pianificazione di Windows, la finestra della riga di comando si apre per una frazione di secondo e poi si chiude. Non vedo una cartella python27 in C: \ è un problema? – Josh

+0

Nel caso in cui sia utile, sto utilizzando Windows Server 2003 SP2 in ambiente a 64 bit – Josh

+2

Bene, è necessario installare prima python. Vai a www.python.org e scarica la versione 2.7 –

30

Aprire una riga di comando (windowskey + R, 'cmd', <ENTER>) e tipo 'python -V', <entrano>.

Si dovrebbe ottenere una risposta, qualcosa come "Python 2.7.1".

In caso contrario, non è possibile installare Python. Risolvi prima questo.

Una volta che avete Python, il file batch dovrebbe essere simile

@echo off 
python c:\somescript.py %* 
pause 

Ciò manterrà la finestra di comando di apertura dopo lo script termina, in modo da poter vedere eventuali errori o messaggi. Una volta che sei soddisfatto, puoi rimuovere la linea di "pausa" e la finestra di comando si chiuderà automaticamente al termine.

+5

Grazie, ma cosa significa '@echo off' e'% * '? –

+2

@the_prole per '@echo off' dai un'occhiata a -> https://technet.microsoft.com/en-us/library/bb490897.aspx?f=255&MSPPError=-2147217396 e'% * 'può prendere qualsiasi numero di argomenti. – Akshay

8

Basta semplicemente aprire un file batch che contiene questo due linee nella stessa cartella del vostro script python:

somescript.py 
pause 
+0

è possibile dare l'intero codice, invece del nome del file ?? –

+0

@RachitGupta somescript.py nell'esempio sopra è il nome file dello script python che si desidera avviare –

2

Ecco come si può mettere sia il codice lotto e il pitone uno in fila indiana:

0<0# :^
''' 
@echo off 
echo batch code 
python %~f0 %* 
exit /b 0 
''' 

print("python code") 

il ''' rispettivamente avvia e termina i commenti multi linea di Python.

0<0# : ^ è più interessante: a causa della priorità di reindirizzamento in batch, verrà interpretato come :0<0# ^ dallo script batch che è un'etichetta che l'esecuzione non verrà visualizzata sullo schermo. Il caret alla fine sfuggirà alla nuova riga e la seconda riga sarà collegata alla prima riga. Per python sarà 0<0 e un inizio di commento in linea.

Il merito va a siberia-man

3

Se hai aggiunto Python al PATH allora si può anche semplicemente eseguire in questo modo.

python somescript.py 
+0

Sì, è facile, non è così buono se si dispone di più installazioni Python (ad esempio, ad esempio, 2.7 e 3.6) anche Python viene quasi sempre aggiunto al percorso quindi non penso che sia un problema troppo grande. – Simon

+1

Un'opzione per quello è di fare una copia in ciascuna delle tue versioni python del file exe e rinominare in qualcosa di unico. python2.7.exe, python3.6.exe ecc. Quindi nella riga di comando puoi chiamarlo come python3.6 somescript.py –

+1

sì terribilmente evidentemente ma efficace (perché non ci ho pensato?). Inoltre penso che 36 sia meglio di 3.6 e 27 per 2.7 il punto potrebbe causare confusione. – Simon

0

--- --- xxx.bat

@echo off 
set NAME1="Marc" 
set NAME2="Travis" 
py -u "CheckFile.py" %NAME1% %NAME2% 
echo %ERRORLEVEL% 
pause 

--- --- yyy.py

import sys 
import os 
def names(f1,f2): 

    print (f1) 
    print (f2) 
    res= True 
    if f1 == "Travis": 
     res= False 
    return res 

if __name__ == "__main__": 
    a = sys.argv[1] 
    b = sys.argv[2] 
    c = names(a, b) 
    if c: 
     sys.exit(1) 
    else: 
     sys.exit(0)   
Problemi correlati