2013-09-27 67 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 \ Open Folder In重命名“/ ve/t REG_SZ/d”打开并重命名“/ f 它不添加注册表项或者 –

+0

删除'EXIT'命令。再次检查结果。 –

回答

2

我改名的批处理文件TEST.BAT,这显然已经解决了该问题。

感谢您的帮助!

+1

不需要重命名批量(尽管应该),可以用REG.EXE批量替换REG。 –

+2

我没有做注册表,但这也适用于我?谢谢奥巴马 – paIncrease

+0

请给出答案。 – San

21

在windows中,如果您的命令行可执行文件与您的bat文件名具有相同的名称,并且该批处理文件包含此命令,则该批处理文件将保持循环。

例子:

  • 在桌面上创建文件net.bat
  • 在您的文件写这样的文字:net

双击该文件,它会不断循环。

此行为的原因是命令的执行顺序。您要执行的命令位于路径中的其中一个文件夹中。但批处理文件位于当前文件夹中,因此它首先被执行,导致循环。

+1

在Windows 7中,这似乎并不是这种情况。在Windows 10中使用相同的脚本,我遇到了循环问题。这可能是Windows 10的一项功能。 –

+0

刚刚在Windows 7和Windows 8中试过这个,并且循环问题在那里。 –

0

确保:

  1. 脚本的名称不是像一个内置的命令或PROGRAMM

  2. 确保脚本脚本调用没有被命名就像一个内置的命令或PROGRAMM

eg如果您的脚本名为:reeeeeboooot.bat,它调用shutdown -t 10 -r,但在同一文件夹中驻留一个shutdown.cmd

reeeeeboooot.bat实际上会调用shutdown.cmd INSTEAD内置命令。

有时最简单的事情是最难的。 (通常实际上是:-D)