2012-09-11 39 views
23

cerco di utilizzare con il comando "altro", ma ottengo l'errore foloowing:'altro' non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch

'altro' non è riconosciuto come un comando interno o esterno, programma operativo o file batch.

Il mio codice è:

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

Quale il problema?

+1

Non riconosco la lingua che temo (quindi non posso modificare da solo), puoi aggiungere un tag per attirare utenti che hanno familiarità con esso? – amit

+0

"else" potrebbe non essere riconosciuto semplicemente perché questi sono specifici della lingua - non si specifica quale lingua, quale ambiente si utilizza –

risposta

51

Il else deve essere sulla stessa "linea" (a) come if. Rimuovere la nuova linea prima della else in questo modo:

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

Si prega di notare, inoltre, che "zz"=="TRUE" non potrà mai restituire true - ho il sospetto che intendevi "%zz%"=="TRUE"?


(a): Questo non è sempre una buona descrizione, anche se è quello che usano i documenti di Microsoft. Lo stesso comando potrebbe essere stato migliore, e mettendo ) e else su una riga diversa lo suddivide in due comandi.

+3

Questa è un'interpretazione piuttosto liberale della frase "stessa linea" ma è quello che mi aspetto da 'cmd' :-) +1 per la risposta giusta, se non è un fraseggio perfetto. – paxdiablo

+0

@paxdiablo Non è il miglior fraseggio, ma è preso direttamente da 'IF /?'. Nello specifico, "La clausola ELSE deve comparire sulla stessa riga del comando dopo l'IF." e poi dà un esempio quasi identico al codice sopra. Come dici tu, par per il corso in batch;) –

+1

Ho provato a renderlo un po 'più chiaro, anche se oggi ho bevuto un po' di birre - forse avrei peggiorato le cose :-) Potresti volerlo controllare . – paxdiablo

Problemi correlati