diff --git a/cmd/console/js.go b/cmd/console/js.go
index a5fdaacc298e462f095a154c5d2a83b8f23de138..bda58be4d3adf4cf11f897673d2c89043b579676 100644
--- a/cmd/console/js.go
+++ b/cmd/console/js.go
@@ -30,6 +30,7 @@ import (
 
 	"sort"
 
+	"github.com/codegangsta/cli"
 	"github.com/ethereum/go-ethereum/cmd/utils"
 	"github.com/ethereum/go-ethereum/common/docserver"
 	re "github.com/ethereum/go-ethereum/jsre"
@@ -329,7 +330,28 @@ func (self *jsre) welcome(ipcpath string) {
 	}
 }
 
-func (self *jsre) interactive() {
+func (self *jsre) batch(args cli.Args) {
+	statement := strings.Join(args, " ")
+
+	val, err := self.re.Run(statement)
+
+	if err != nil {
+		fmt.Printf("error: %v", err)
+	} else if val.IsDefined() {
+		fmt.Printf("%v", val)
+	}
+
+	if self.atexit != nil {
+		self.atexit()
+	}
+
+	self.re.Stop(false)
+	
+}
+
+func (self *jsre) interactive(ipcpath string) {
+	self.welcome(ipcpath)
+
 	// Read input lines.
 	prompt := make(chan string)
 	inputln := make(chan string)
diff --git a/cmd/console/main.go b/cmd/console/main.go
index e8dd412ba7c59f5dcf21d12e6e67d097a8e717f3..00a9ca9c4555c68b5f4353681d1f910355abd597 100644
--- a/cmd/console/main.go
+++ b/cmd/console/main.go
@@ -40,7 +40,7 @@ const (
 var (
 	gitCommit       string // set via linker flag
 	nodeNameVersion string
-	app             = utils.NewApp(Version, "the ether console")
+	app             = utils.NewApp(Version, "the geth console")
 )
 
 func init() {
@@ -93,8 +93,11 @@ func main() {
 func run(ctx *cli.Context) {
 	jspath := ctx.GlobalString(utils.JSpathFlag.Name)
 	ipcpath := utils.IpcSocketPath(ctx)
-
 	repl := newJSRE(jspath, ipcpath)
-	repl.welcome(ipcpath)
-	repl.interactive()
+
+	if ctx.Args().Present() {
+		repl.batch(ctx.Args())
+	} else {
+		repl.interactive(ipcpath)
+	}
 }