You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.9 KiB
Plaintext

*! shellout 1.4 04Aug2008
*! by roywada@hotmail.com
*! originally written to accompany -outreg2-
*
* version history
* 1.0 Oct2005 beta
* 1.1 Nov2007 opens an application without document name
* opens a document with or without "using"
* 1.2 Jan2008 cd option
* 1.3 Aug2008 version 7.0
* 1.4 04Aug2008 version 7.0 fiddling (was 1.3 Aug2008); fiddling with non-.txt suffix being recognized
program define shellout
version 7.0
syntax [anything] [using/] [,cd]
* does the shelling
if "`c(os)'"=="Windows" | "$S_MACH"=="PC" {
if "`using'"~="" {
winexec cmd /c start "" "`using'"
}
else {
if "`cd'"~="cd" {
cap winexec `anything'
if _rc==193 {
winexec cmd /c start "" "`anything'"
}
if _rc==601 {
noi di in yel "Cannot find `anything'. Make sure typed the name correctly."
}
}
else {
winexec cmd /c cd `c(pwd)'\ & `anything'
}
}
}
else {
* invisible to Stata 7
local Version7 ""
cap local Version7 `c(stata_version)'
if "`Version7'"=="" {
* stata 7
}
else {
* non-PC systems
di "{opt shellout} probably will not work with `c(os)'"
shell `using'
}
}
end
/* Old codes
* shellout
* version 1.0
* October 2005
* by roywada@hotmail.com
*
* (to accompany -outreg2-)
*
program define shelling
version 8.2
syntax using/
* does the shelling
*if c(machine_type)=="PC" {
if "`c(os)'"=="Windows" {
winexec cmd /c start "" "`using'"
}
else {
di "{opt shellout} probably will not work with `c(os)'"
shell `using'
}
end