WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

DOS Console UDFs

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Get results from STDOUT - UDF

Keywords: 	STDOUT pipe piping data > >>

Reference: W16228

This RunCmd UDF supports StdOUT and StdERR making it suitable for running PSExec.

; Run console command and capture StdOUT and StdERR
; Les Ferch, March 27, 2008
#DefineFunction RunCmd(Command)
If Command=="" Then Return ""
Temp = Environment("Temp")
ComSpec = Environment("ComSpec")
F1 = StrCat(Temp,"\",GetTickCount(),"1.txt")
F2 = StrCat(Temp,"\",GetTickCount(),"2.txt")
RunHideWait(ComSpec,StrCat('/c "',Command,' >"',F1,'"',' 2>"',F2,'""'))
F1Data = StrReplace(StrTrim(FileGet(F1)),StrCat(@CR,@CR),@CR)
F2Data = StrReplace(StrTrim(FileGet(F2)),StrCat(@CR,@CR),@CR)
Separator = Num2Char(160) ; Non-breaking space used to separate StdERR from StdOUT
If F1Data=="" || F2Data=="" Then Separator=""
Result = StrCat(F2Data,@CRLF,Separator,F1Data)
FileDelete(F1)
FileDelete(F2)
Return Result
#EndFunction

;Internal commands:
Pause("",RunCmd("date /t"))
Pause("",RunCmd("vol c:"))
Pause("",RunCmd("ver"))
Pause("",RunCmd('tree "c:\program files\common files" /a'))
Pause("",RunCmd("n0suchcmd")) ; Intentional error

;Console mode executables:
Pause("",RunCmd("ipconfig /all"))
Pause("",RunCmd("tasklist"))
Pause("",RunCmd("systeminfo"))
Pause("",RunCmd("schtasks"))
Pause("",RunCmd("route print"))
Pause("",RunCmd("nslookup ls"))
Pause("",RunCmd("netstat -a"))
Pause("",RunCmd("netstat -n"))
Pause("",RunCmd("netstat -r"))
Pause("",RunCmd("ipxroute config"))
Pause("",RunCmd("net statistics workstation"))
Pause("",RunCmd("net view"))
Pause("",RunCmd("nbtstat -n"))
Pause("",RunCmd("getmac"))
Pause("",RunCmd("driverquery"))
Pause("",RunCmd("ping www.winbatch.com -w 100 -n 1"))
Pause("",RunCmd("tracert www.winbatch.com -w 100 -h 5"))

;Console mode scripts:
DirChange(DirWindows(1))
Pause("",RunCmd("cscript prnport.vbs"))
Pause("",RunCmd("cscript prnmngr.vbs"))
Pause("",RunCmd("cscript prnjobs.vbs"))
Pause("",RunCmd("cscript prndrvr.vbs"))
Pause("",RunCmd("cscript eventquery.vbs /l application"))

;Quotes in parameters are okay:
DirChange(Environment("Temp"))
FilePut("File 1.txt",StrReplace("a|b|c|d|e","|",@CRLF))
FilePut("File 2.txt",StrReplace("a|b|x|d|e","|",@CRLF))
Pause("",RunCmd('fc "File 1.txt" "File 2.txt"'))

;PSExec example:
Data = RunCmd('psexec \\10.9.192.58 -u domain\account -p password getmac')
Pause("",Data)
StdERR = ItemExtract(1,Data,Num2Char(160))
StdOUT = ItemExtract(2,Data,Num2Char(160))
Pause("",StdERR)
Pause("",StdOUT)

Article ID:   W17478
File Created: 2014:07:18:09:51:40
Last Updated: 2014:07:18:09:51:40