2013-09-27 4 views
10

Я написал командный файл из VB.NET-программы, которую я создаю.Мой пакетный файл продолжает цикл, но почему?

Когда я дважды кликаю по файлу в Windows XP, он вызывает командную строку и появляется снова и снова.

Мой командный файл выглядит следующим образом

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 

Я не могу understan, что я сделал неправильно, но если открыть командную строку и запустить его оттуда, она выполняется один раз.

Любая помощь будет с благодарностью оценена!

Благодаря

+0

Вы видите какой-либо выход? –

+0

Да, он просто продолжает повторять следующее, пока не нажмете Ctrl + C P: \ Misc \ Rename v2.0 \ Rename v2.0 \ bin \ Debug> REG ADD "HKCU \ Software \ Classes \ * \ shell \ Открыть папку In Rename "/ ve/t REG_SZ/d" Открыть с переименованием "/ f он не добавляет ключ реестра –

+0

Удалите команду' EXIT'. Проверьте результаты снова. –

ответ

2

я переименовал пакетный файл test.bat, и это, видимо, исправили проблему.

Спасибо за помощь!

+1

Не нужно переименовывать пакет (хотя должно), может заменить REG на пакет REG_EXE. –

+2

Я не делаю что-то с реестром, но это сработало для меня тоже ??? спасибо obama – paIncrease

+0

Пожалуйста, примите ответ. – San

21

В окнах, если у вас есть исполняемая команда командной строки с тем же именем вашего имени файла bat, а командный файл содержит эту команду, командный файл продолжает цикл.

Пример:

  • Создайте файл net.bat на рабочем столе.
  • В файле написать этот текст: net

Дважды щелкните файл, и он будет держать зацикливание.

Причиной такого поведения является порядок выполнения команд. Команда, которую вы хотите выполнить, находится в одной из папок на вашем пути. Но командный файл находится в вашей текущей папке, поэтому он запускается первым, вызывая цикл.

+1

В Windows 7 это, похоже, не так. Используя тот же скрипт в Windows 10, у меня возникла проблема с циклом. Это может быть функция Windows 10. –

+0

Просто попробовал это в Windows 7 и Windows 8, и проблема с циклом существует. –

0

убедитесь:

  1. ваш сценарий не называется, как накопление в команде или программе

  2. убедитесь, что сценарии вызовы сценария не названы, как строить в команде или программе

eg если ваш скрипт вызывается: reeeeeboooot.bat, который вызывает shutdown -t 10 -r, но в SAME FOLDER находится shutdown.cmd

reeeeeboooot.bat действительно вызовет shutdown.cmd INSTEAD команды сборки.

Иногда самые простые вещи являются самыми трудными. (довольно часто на самом деле: -D)

Смежные вопросы