我的批处理文件保持循环,但为什么?

时间:2013-09-27 09:34:49

标签: batch-file

我已经从我正在创建的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

我无法理解我做错了什么,但如果我打开一个命令提示符并从那里运行它,它会运行一次。

任何帮助都会非常感激!

由于

4 个答案:

答案 0 :(得分:39)

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

示例:

  • 在桌面上创建文件net
  • 在您的文件中写下此文字:Arabic

双击该文件,它将继续循环。

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

答案 1 :(得分:2)

我将批处理文件重命名为TEST.bat,这显然已经解决了这个问题。

感谢您的帮助!

答案 2 :(得分:2)

在Windows命令行中,如果您想执行一个命令或一组命令,那么我们通常将这些命令放入.bat文件中以在任何时间执行它们,但是在执行此操作之前,我们必须遵循一些准则。

  1. 文件名和命令名不应相同,否则将永远循环。
  2. 该目录中不应存在与命令名称相同的文件。

答案 3 :(得分:0)

确保:

  1. 您的脚本未命名为内置命令或程序

  2. 确保脚本调用的脚本不像内置命令或程序那样命名

  3. e.g。如果您的脚本被调用:reeeeeboooot.bat调用shutdown -t 10 -r,但在相同文件夹中存在shutdown.cmd

    reeeeeboooot.bat实际上会调用build-in命令的shutdown.cmd INSTEAD。

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