我的批处理文件没有循环?

时间:2017-08-24 04:17:33

标签: batch-file

我是新手,我正在尝试一个我在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'循环不起作用它只会执行一次并退出.bat
  2. 有没有办法刷新页面而无需在新标签页中重新打开页面,例如只刷新当前标签页?

1 个答案:

答案 0 :(得分:1)

您的脚本中存在一些语法错误。

EXIT命令

EXIT退出脚本。您可能希望将其更改为其他内容。

IF声明

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

略有不正确,因为if和同意之间缺少空格。此外,使用双引号可确保它成功地与包含空格的值进行比较。

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