我创建了一个批处理文件来检查是否存在计划任务,如果它们没有创建它们,但是,即使作业不存在,我的if exists规则似乎也总是如此.
有任何想法吗?
::Check Rule
IF EXIST SchTasks /QUERY /TN "Cache Task Morning" (
echo ! Morning rule in place!
GOTO NEXT
) ELSE IF NOT EXIST SchTasks /Create /SC DAILY /TN "Cache Task Morning" /TR "C:\Cache Clear\Cache Clear.bat" /ST 09:00
:NEXT
IF EXIST SchTasks /QUERY /TN "Cache Task Afternoon" (
echo ! Afternoon rule in place!
GOTO NEXT TWO
) ELSE IF NOT EXIST SchTasks /Create /SC DAILY /TN "Cache Task Afternoon" /TR "C:\Cache Clear\Cache Clear.bat" /ST 15:00
:NEXT …Run Code Online (Sandbox Code Playgroud) 我想从192.168.1.1 ping到192.168.1.255
所以我用
FOR(i=1;i<=255;i++)
//each time, I test the IP address by pinging it with the following code
try {
PingReply reply = pinger.Send(AdresaIp);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:
PingReply reply = pinger.Send(AdresaIp);
pingable = reply.Status == IPStatus.Success;
Run Code Online (Sandbox Code Playgroud)
当ping成功时,上面的两行的执行时间为2毫秒,但是当它失败时(会发生多次)它需要大约3秒,如果我ping 255个IP,那就太大了.
所以我想以下列方式实现一个计时器:
if (timer > 1 second) continue;
//if it takes more than 1 second for the current iteration jump to the next
Run Code Online (Sandbox Code Playgroud)
迭代.
我试过了System.Diagnostics.Stopwatch.StartNew(,但是没有为我工作,因为它给了我测试ping之后的时间.我需要一些能让我检查ping测试工作的东西,所以当它达到1秒时,我可以使用CONTINUE命令.
谢谢,
弗拉德