2012-01-13 13 views
8

Sto creando un file batch che deve aprire un secondo script batch in una finestra separata cmd. Posso usare con successo tutto il mio codice se uso il comando "call" invece di "start" ma che non lancia lo script nella sua finestra. Ho ricevuto questo errore molte volte in passato ed è sempre correlato al comando di avvio. Io cambio come faccio il processo e tutto funziona bene. Perché il comando start causa questo errore e come posso risolverlo? Di seguito è riportato un esempio del mio codice."non è disponibile spazio sufficiente per elaborare questo comando" dopo aver utilizzato il comando di avvio in un file batch con windows 7

start "" /w "k:\Bundle Support files\record serial.cmd" 

Il secondo file batch si apre e completa tutte le attività, tranne l'ultima, che è

goto :exit 

:exit 

ho cambiato l'ultimo comando nel file diverse volte e rende sempre attraverso l'intero lotto, ma l'ultimo comando che terminerebbe quel batch fallisce con l'errore "Memoria insufficiente per elaborare questo comando". Questo accade su più macchine (hardware diverso) e più SO. Ho tentato la correzione IRPStackSize senza fortuna. Qualche suggerimento sul motivo per cui sto ricevendo questo errore?

Grazie, Kevin

+1

usa goto: addio e: addio come etichette. L'uscita potrebbe essere gestita come una parola riservata – rene

+0

@rene Ho avuto problemi con la prenotazione. Finisci anche in occasione. 'goto addio' e': addio' è un buon suggerimento. Di solito uso Fin. – MaskedPlant

+0

Grazie per i suggerimenti, ma penso che forse non sono stato abbastanza chiaro nella mia domanda. Sto cercando di capire come funziona il comando "start" e perché quando lo uso il file batch che è "Iniziato" non finirà NESSUNA cosa sia l'ultimo comando. Otterrò l'errore "Memoria insufficiente per elaborare questo comando". Posso usare con successo il comando start quando si avvia un eseguibile. Il problema sta nell'utilizzarlo con i file batch. – KevinB

risposta

0

Sostituire goto :exit con goto :EOF. Non definire l'etichetta EOF (è predefinita).

+0

Grazie per i suggerimenti, ma penso che forse non sono stato abbastanza chiaro nella mia domanda. Sto cercando di capire come funziona il comando "start" e perché quando lo uso il file batch che è "Iniziato" non finirà NESSUNA cosa sia l'ultimo comando. Otterrò l'errore "Memoria insufficiente per elaborare questo comando". Posso usare con successo il comando start quando si avvia un eseguibile. Il problema sta nell'utilizzarlo con i file batch. – KevinB

15

Ho riscontrato un problema simile e la soluzione per me era piuttosto strana. Sembra che l'impostazione del titolo della finestra su null ("") causi l'errore.

Così, invece di

start "" /w "k:\Bundle Support files\record serial.cmd" 

provare

start "Placeholder Name" /w "k:\Bundle Support files\record serial.cmd" 

non posso verificare se questo funzionerà nel tuo caso (e dubito è importante come si sta ormai lontani), ma si spera questo aiuterà qualcuno a sperimentare errori simili.

+1

Sono assolutamente sbalordito che questo ha funzionato. Che terribile falsa pista di un messaggio di errore, Windows. –

-1

Ecco cosa fa il comando START quando si avvia un cmd. Se avvii START cmd non ti aspetteresti che CMD esca immediatamente: rimane lì pronto per l'uso. Quindi, o CHIAMA un file cmd e finirà, o START un cmd, e non finirà - ma puoi farlo finire usando il comando ESCI. Anche SEIPIA ha risposto correttamente al problema dello stack overflow, invece di usare start "" nomefile.cmd, inserire qualcosa tra le virgolette per agire come il titolo - che impedirà l'errore di overflow dello stack.

Problemi correlati