Solved

DOS Script

Posted on 2013-01-09
5
339 Views
Last Modified: 2013-01-09
Try to make the attached batch work.

If I only keep one statement in "else" clause and remove the following, it works fine. It seems that there can only be one statement in else statement. Any idea ?

Thanks


       set ERRCODE=%ERRORLEVEL%
       
       IF %ERRCODE% LEQ 499 set MSERROR=681382
       IF %ERRCODE% GTR 500 set MSERROR=681388

       IF ERRCODE NEQ 0 start http://msdn.microsoft.com/en-us/library/ms%MSERROR%(v=vs.85).aspx
       IF ERRCODE NEQ 0 echo.This failed with ERROR: %ERRCODE%
Deploy.txt
0
Comment
Question by:AXISHK
  • 3
  • 2
5 Comments
 

Author Comment

by:AXISHK
ID: 38761566
But the attached batch doesn't work unless I remove the statements that I mentioned above.

Any idea ?
0
 
LVL 53

Expert Comment

by:Bill Prew
ID: 38761571
Your problem is likely the fact that you are assigning and checking environment variables inside a FOR loop. To do that you need to use delayed expansion. Try this instead, notice the new setlocal line, and the use of ! to reference variables inside the loop that are changed inside the loop.

ECHO OFF
setlocal EnableDelayedExpansion

SET PClist=pclist.txt

for /f "tokens=2-4 delims=/ " %%i in ('date/t') do set yyyymmdd=%%k%%i%%j
if not exist %yyyymmdd%\*.* md %yyyymmdd%

date /t > D:\Temp\%yyyymmdd%\Chrome.log
time /t >> D:\Temp\%yyyymmdd%\Chrome.log

FOR /F "usebackq delims=" %%A in ("%PClist%") DO (
   MD \\%%A\C$\Temp >NUL 2>&1
   ECHO INSTALLING CHROME IN [%%A] >> D:\Temp\%yyyymmdd%\Chrome.log
   COPY "\\HKFSVR01\share_drive\public\Google Chrome\ChromeSetup.exe" \\%%A\C$\Temp
 

   verify >null
   set ERRCODE=0
   REM REM PSEXEC \\%%A -accepteula C:\Temp\ChromeSetup.exe /install
   REM PSEXEC \\%%A -u hkm\admin -p xxxxx msiexec.exe /i  "\\HKFSVR01\share_drive\corporate\public\Google Chrome\GoogleChromeStandaloneEnterprise.msi" ALLUSERS=1 /q /norestart

   set ERRCODE=0
   IF '!ERRORLEVEL!'=='0' (
       echo Success! >> D:\Temp\%yyyymmdd%\Chrome.log
   ) else (
       echo Fail ! >> D:\Temp\%yyyymmdd%\Chrome.log

       set ERRCODE=!ERRORLEVEL!
       
       IF !ERRCODE! LEQ 499 set MSERROR=681382
       IF !ERRCODE! GTR 500 set MSERROR=681388

       IF !ERRCODE! NEQ 0 start http://msdn.microsoft.com/en-us/library/ms%MSERROR%(v=vs.85).aspx
       IF !ERRCODE! NEQ 0 echo.This failed with ERROR: %ERRCODE%
   )
   del \\%%A\c$\Temp\ChromeSetup.exe  	
)

Open in new window

~bp
0
 
LVL 53

Expert Comment

by:Bill Prew
ID: 38761579
Also, what ERRORLEVEL are you trying to check?  The result of the PSEXEC, or something else?

~bp
0
 

Author Comment

by:AXISHK
ID: 38761616
Return the error at this time ".aspx was unexpected at this time". Any idea ?

Tks
0
 
LVL 53

Accepted Solution

by:
Bill Prew earned 500 total points
ID: 38761638
Try changing the START to this:

start "" "http://msdn.microsoft.com/en-us/library/ms%MSERROR%(v=vs.85).aspx"
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Using dates in 'DOS' batch files has always been tricky as it has no built in ways of extracting date information.  There are many tricks using string manipulation to pull out parts of the %date% variable or output of the date /t command but these r…
YESTERDAY YESTERDAY.BAT is inspired by a previous article I wrote entitled: TOMORROW.BAT (http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_4196-Advanced-Batch-File-Programming-TOMORROW-BAT.html). The crux of this batch f…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

813 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

14 Experts available now in Live!

Get 1:1 Help Now