2017-08-24 22 views
0

我是新來這個,我想我在Youtube上看到一個基本的例子:我的批處理文件沒有循環?

@echo off 
echo this little program helps you to refresh a website 
pause 
cls 
echo but first we have to do some preferences 
pause 
cls 
echo please enter the website name here 
set /p website= 
cls 
echo please enter the time between refreshes 
set /p time= 
cls 
echo Set limited or unlimited refresh 
set /p refresh= 
if'%refresh%'=='1' goto :once 
if'%refresh%'=='0' goto :unlimited 
cls 

:once 
cls 
echo Preferences finished 
pause 
timeout /t %time% /nobreak 
start %website% 
exit 

:unlimited 
cls 
echo Preferences finished 
pause 
:again 
timeout /t %time% /nobreak 
start %website% 
goto :again 

此代碼應該問一個網站的用戶和刷新時間,它會通過重新打開它刷新該網站在IE瀏覽器(Internet Explorer),但我有2個問題是:

  1. ,如果我輸入0或「0」,將只執行一次,退出蝙蝠
  2. 循環不工作是否有一個刷新頁面的方式,而不必在新標籤中重新打開頁面,例如只刷新當前標籤頁?
+0

提示:退出命令 – SteveFest

+0

退出應該工作:一次,以便它執行一次,如果我定義:先不限制,然後:一次? –

+0

不,這是一回事。 – SteveFest

回答

1

腳本中有一些語法錯誤。


EXIT命令

EXIT退出腳本。您可能需要將其更改爲其他內容。


IF聲明

if'%refresh%'=='1' goto :once 

是完全錯誤的,你應該把這個代替。

if "%refresh%"=="1" goto :once 

未定義輸入

如果變量%refresh%不爲1或0,它進入:once和執行的代碼在那裏。


刷新頁面

Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActivate("Chrome") 
WshShell.SendKeys "{F5}" 

保存此腳本Refresh.vbs,並把它放在同一文件夾中的批處理文件。

然後,當您要刷新網頁時,請執行cscript //nologo Refresh.vbs

+0

這種刷新方式太快了,它不會加載頁面。 cmd框是口吃,頁面是永久加載。 –

+0

然後,當你輸入'time'時,輸入一個更大的數字 – SteveFest

+0

啊是的,我修正了它,這是我的錯誤。抱歉!非常感謝你。 –