2017-08-24 24 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

啊是的,我修正了它,这是我的错误。抱歉!非常感谢你。 –