2013-09-27 1 views
10

Ho scritto un file batch da un programma VB.NET che sto creando.Il mio file batch continua a scorrere, ma perché?

Quando faccio doppio clic sul file in Windows XP, viene visualizzato un prompt dei comandi e sembra che venga eseguito più e più volte.

mio file batch è la seguente

REG ADD "HKCU\Software\Classes\*\shell\Open Folder In Rename" /ve /t REG_SZ /d "Open With Rename" /f 
REG ADD "HKCU\Software\Classes\*\shell\Open Folder In Rename\Command" /ve /t REG_SZ /d "P:\Misc\Rename v2.0\Rename v2.0\bin\Debug\Rename v2.0.exe ""%1""" /f 
EXIT 

Non posso understan cosa ho fatto di sbagliato, ma se apro un prompt dei comandi ed eseguire da lì, esso viene eseguito una volta.

Qualsiasi aiuto sarebbe molto apprezzato!

Grazie

+0

Vedi qualche uscita? –

+0

Sì, continua a ripetere quanto segue fino a quando premo Ctrl + C P: \ Misc \ Rinomina v2.0 \ Rinomina v2.0 \ bin \ Debug> REG AGGIUNGI "HKCU \ Software \ Classes \ * \ shell \ Apri cartella in Rinominare "/ ve/t REG_SZ/d" Apri con rinomina "/ f non aggiunge la chiave di registro –

+0

Rimuovi il comando' EXIT'. Controlla di nuovo i risultati. –

risposta

2

ho rinominato il file batch per test.bat e questo ha apparentemente risolto il problema.

Grazie per l'aiuto!

+1

Non è necessario rinominare batch (anche se dovrebbe), può sostituire 'REG' in batch con' REG.EXE'. –

+2

Non sto facendo qualcosa con il registro ma questo ha funzionato anche per me ??? grazie obama – paIncrease

+0

Si prega di confermare una risposta. – San

21

In Windows, se si dispone di un eseguibile da riga di comando con lo stesso nome del nome file del blocco e il file batch contiene questo comando, il file batch continua il ciclo.

Esempio:

  • Creare il file net.bat sul desktop.
  • Nel file scrivere questo testo: net

doppio clic sul file e manterrà loop.

La causa di questo comportamento è l'ordine di esecuzione dei comandi. Il comando che vuoi eseguire si trova in una delle cartelle del tuo percorso. Ma il file batch si trova nella cartella corrente, quindi viene eseguito per primo, causando il loop.

+1

In Windows 7, questo non sembra essere il caso. Usando lo stesso script in Windows 10, ho avuto il problema del looping. Questa potrebbe essere una funzionalità di Windows 10. –

+0

Ho appena provato questo in Windows 7 e Windows 8 e il problema del loop è lì. –

0

assicurarsi che:

  1. lo script non è denominato come un comando o programma

  2. assicurarsi che gli script di build-nelle chiamate di script non sono chiamate come un comando o programma build-in

es. se il tuo script è chiamato: reeeeeboooot.bat che chiama shutdown -t 10 -r, ma nello SAME FOLDER risiede un shutdown.cmd

reeeeeboooot.bat chiamerà in realtà shutdown.cmd INSTEAD del comando build-in.

a volte le cose più facili sono le più difficili. (abbastanza spesso in realtà MrGreen)