2013-09-27 62 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)