2010-12-31 51 views

Respuesta

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

Hola MK-Al abrir el Bloc de notas, pegue su línea en allí y guardarlo e intentar ejecutarlo a través del programador de Windows, la ventana de la línea de comandos se abre por una fracción de segundo y luego se cierra. No veo una carpeta python27 en C: \ ¿es eso un problema? – Josh

+0

En caso de que ayude, estoy usando Windows Server 2003 SP2 en el entorno de 64 bits – Josh

+2

Bueno, primero debe instalar Python. Vaya a www.python.org y descargue la versión 2.7 –

30

Abrir una línea de comandos (Windowskey + R, 'cmd', <entran>) y tipo 'python -V', <entran>.

Debería obtener una respuesta, algo así como 'Python 2.7.1'.

Si no lo hace, es posible que no tenga instalado Python. Arregla esto primero.

Una vez que tenga Python, el archivo por lotes debe ser similar

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

Esto mantendrá la ventana de comandos abierta después de que finalice el script, para que pueda ver los errores o mensajes. Una vez que esté contento con él, puede eliminar la línea de 'pausa' y la ventana de comando se cerrará automáticamente cuando haya terminado.

+5

Gracias, pero ¿qué significa '@echo off' y'% * '? –

+2

@the_prole para '@echo off' eche un vistazo a -> https://technet.microsoft.com/en-us/library/bb490897.aspx?f=255&MSPPError=-2147217396 y'% * 'puede tomar cualquier número de argumentos. – Akshay

8

Simplemente basta con abrir un archivo por lotes que contiene estas dos líneas en la misma carpeta de su script en Python:

somescript.py 
pause 
+0

¿es posible dar el código completo, en lugar del nombre del archivo? –

+0

@RachitGupta somescript.py en el ejemplo anterior es el nombre de archivo de la secuencia de comandos python que desea iniciar –

2

Así es como se puede poner tanto el código de lote y la pitón uno de cada solo archivo:

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

print("python code") 

''' respectivamente, inicia y finaliza los comentarios de varias líneas de pitón.

0<0# : ^ es más interesante: debido a la prioridad de redirección en el lote, se interpretará como :0<0# ^ mediante el script por lotes, que es una etiqueta cuya ejecución no se mostrará en la pantalla. El símbolo de intercalación al final escapará de la línea nueva y la segunda línea se adjuntará a la primera línea. Para Python, será una declaración 0<0 y un inicio de comentario en línea.

El mérito es de siberia-man

3

Si ha añadido a su PATH Python entonces también puede simplemente correr así.

python somescript.py 
+0

Sí, es fácil, no tan bueno si tiene varias instalaciones de Python (es decir, 2.7 y 3.6 por ejemplo) también casi siempre se agrega Python a camino, así que no creo que eso sea un problema. – Simon

+1

Una opción para eso es hacer una copia en cada una de sus versiones de python del exe y cambiarle el nombre a algo único. python2.7.exe, python3.6.exe, etc. Luego, en la línea de comandos, puede llamarlo como python3.6 somescript.py –

+1

sí terriblemente obviamente, pero efectivo (¿por qué no pensé en eso?). También creo que 36 es mejor que 3.6 y 27 para 2.7 el punto podría causar confusión. – 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)   
Cuestiones relacionadas