2012-09-11 113 views
23

intento usar con el comando "otra cosa", pero me sale el error foloowing:'otra cosa' no se reconoce como un comando interno o externo, programa o archivo por lotes

'otra cosa' no se reconoce como una comando interno o externo, programa operable o archivo por lotes.

Mi código es:

if "zz"=="TRUE" (
     copy /a zz + /a ee=/a zz 
    ) 
    else (
     copy /a e + /a %TMP%=/a e 
    ) 

cuál es el problema?

+1

No reconozco el lenguaje que me temo (por lo que no puedo editarlo solo), ¿puede agregar una etiqueta para atraer a los usuarios que están familiarizados con él? – amit

+0

"else" puede que no se reconozca simplemente porque son específicos del idioma; no especifica qué idioma, qué entorno usa –

Respuesta

51

El else debe estar en la misma "línea" (a) que el if. Retire la nueva línea antes de la else así:

if "zz"=="TRUE" (
    copy /a zz + /a ee=/a zz 
) else (
    copy /a e + /a %TMP%=/a e 
) 

Tenga en cuenta también que "zz"=="TRUE" nunca se evaluará a true - Sospecho que quería decir "%zz%"=="TRUE"?


(a): Esto no siempre es una buena descripción, aunque es lo que usan los documentos de Microsoft. El mismo comando puede haber sido mejor, y poner ) y else en una línea diferente la divide en dos comandos.

+3

Esta es una interpretación bastante liberal de la frase "misma línea" pero es lo que espero de 'cmd' :-) +1 para la respuesta correcta, si no es frase perfecta. – paxdiablo

+0

@paxdiablo No es el mejor fraseo, pero se toma directamente de 'IF /?'. Específicamente, "La cláusula ELSE debe ocurrir en la misma línea que el comando después del IF". y luego da un ejemplo casi idéntico al código anterior. Como dices, igual para el curso en lote;) –

+1

He intentado aclarar un poco, aunque he tomado algunas cervezas esta tarde, puede haber empeorado las cosas :-) Es posible que quieras comprobarlo . – paxdiablo

Cuestiones relacionadas