Solved

Availability using a for command in a batch file

Posted on 2009-06-30
5
218 Views
Last Modified: 2012-05-07
Hi everyone,
Guys im having a problem with a batch file using a for statement.

I have a text file listing computer names called "c:\computers.txt"
A batch file called check.bat

When I run check.bat, I want it to read c:\computers.txt, and for each computer, check if it can be pinged or not, and write either:

<Computername>:  Down
or
<Computername>:  Up

to the file:
availability.txt

I just cant seem to get this working.

Any help greatly appreciated.

If for example, i have 3 systems in computers.txt, the output I get when running the batch file is:

IP address must be specified.
IP address must be specified.
IP address must be specified.

and in the availabilty.txt file, I get:

: Down
: Down
: Down


I dont know where im going wrong :>)
@echo off

for /f %%c in (c:\computers.txt) do ( CALL :GETINFO)
 

:GETINFO

Set Availability=

ping -n 2 -w 100 %1

IF ERRORLEVEL 1 GOTO UP

goto UP
 

:UP

Set Availability=Up
 

:DOWN

Set Availability=Down
 

echo %1: %Availability%>>availability.txt

Open in new window

0
Comment
Question by:Simon336697
  • 3
  • 2
5 Comments
 
LVL 67

Expert Comment

by:sirbounty
Comment Utility
Try this...
@echo off

setlocal enabledelayedexpansion

for /f %%c in (c:\computers.txt) do (

  call :GETINFO %%c

  echo %%c: !Availability!>>availability.txt

)

goto :eof

 

:GETINFO

if [%1]=[] goto :eof

Set Availability=

ping %1 -n 2 -w 100 

If %errorlevel%==1 goto DOWN

 

Set Availability=Up

goto :eof

 

:DOWN

Set Availability=Down

Open in new window

0
 
LVL 1

Author Comment

by:Simon336697
Comment Utility
Hi sirbounty, hope you are well mate.
Sirbounty,

When i run your script, im getting the following mate :>)

=[] was unexpected at this time.
0
 
LVL 67

Accepted Solution

by:
sirbounty earned 500 total points
Comment Utility
Try that once more...missed an = on line 10...
@echo off

setlocal enabledelayedexpansion

for /f %%c in (c:\computers.txt) do (

  call :GETINFO %%c

  echo %%c: !Availability!>>availability.txt

)

goto :eof

 

:GETINFO

if [%1]==[] goto :eof

Set Availability=

ping %1 -n 2 -w 100 

If %errorlevel%==1 goto DOWN

 

Set Availability=Up

goto :eof

 

:DOWN

Set Availability=Down

Open in new window

0
 
LVL 1

Author Comment

by:Simon336697
Comment Utility
Sirb,

That works great mate.
Great to see you on here as always Sirb :>)
0
 
LVL 67

Expert Comment

by:sirbounty
Comment Utility
Glad I could help once again. :^)
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

I have published numerous articles here at Experts Exchange that present programs/scripts written in a language called AutoHotkey. Each of those articles has a brief paragraph describing where to download the product and how to install it. I have al…
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now