go语言执行windows下命令行的方法

时间:2023年04月27日

/

来源:德隆望尊

/

编辑:本站小编

收藏本文

下载本文

以下是小编整理的go语言执行windows下命令行的方法,本文共10篇,希望能够帮助到大家。本文原稿由网友“德隆望尊”提供。

篇1:go语言执行windows下命令行的方法

作者:令狐不聪 字体:[增加 减小] 类型:

这篇文章主要介绍了go语言执行windows下命令行的方法,实例分析了Go语言操作windows下命令行的技巧,需要的朋友可以参考下

本文实例讲述了go语言执行windows下命令行的方法,分享给大家供大家参考。具体如下:

在golang里执行windows下的命令行,例如在golang里面调用 del d:\\a.txt 命令

代码如下:

package main

import(

“fmt”

“os/exec”

)

func main{

c := exec.Command(“cmd”, “/C”, “del”, “D:\\\\a.txt”)

if err := c.Run(); err != nil {

fmt.Println(“Error: ”, err)

}

}

希望本文所述对大家的Go程序设计有所帮助,

篇2:go语言通过管道连接两个命令行进程的方法

作者:令狐不聪 字体:[增加 减小] 类型:转载

代码如下:

package main

import (

“os”

“os/exec”

“fmt”

“flag”

“strings”

)

func main() {

generator := exec.Command(“cmd1”)

consumer := exec.Command(“cmd2”)

pipe, err := consumer.StdinPipe()

generator.Stdout = pipe

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇3:windows下启动mysql服务的命令行启动和手动启动方法

今天遇到mysql服务无法启动,上网一查很多人也遇到mysql服务器启动不了的问题,所以就索性整理了windows下启动mysql服务的命令行启动和手动启动方法的文章,以便各位遇到同类问题的朋友进行参考,

1、图形界面下启动mysql服务。

在图形界面下启动mysql服务的步骤如下:

(1)打开控制面板->管理工具->服务,如下图所示:

可以看到Mysql服务目前的状态是未启动(未写已启动的都是未启动状态),在对应行双机打开小窗口如下:

点击按钮“启动”则进行mysql服务的启动,这时候会显示已启用,刷新服务列表也会显示出来已启用状态,这样就通过图形界面完成了mysql服务的启动,

关闭的话,点击这个小窗口的停止按钮即可进行服务的关闭。

2、命令行下启动mysql服务。

下面讲通过命令行的方式启动mysql服务:

(1)先找到mysql的安装位置,如我的电脑的安装位置是:D:\\Program Files\\MySQL\\MySQL Server 5.0,我就执行下面的操作:

开始->运行->输入“cmd”开启命令行,然后输入“D:”定位到D盘盘符。如图

进入Mysql目录下的bin目录中,如图:

(2)输入mysql命令行的服务启用命令:

net stat mysql (对应的服务关闭命令为 net stop mysql)

如图所示:

看到上图就完成了通过命令行进行mysql服务启动的操作。

篇4:python在windows命令行下输出彩色文字的方法

作者:liuli 字体:[增加 减小] 类型:

这篇文章主要介绍了python在windows命令行下输出彩色文字的方法,涉及Python文字特效操作技巧,需要的朋友可以参考下

本文实例讲述了python在windows命令行下输出彩色文字的方法,分享给大家供大家参考。具体分析如下:

默认情况下python在控制台输出的文字信息都是黑白的,如果能将文字做成彩色的输出,输出效果会更完美,也很酷,不是吗,下面是一段演示代码,这段代码封装了一个color类用来输出带颜色的文字,只要调用该类里面的相关方法就可以了,非常简单。

代码如下:

#!/usr/bin/env python

#encoding: utf-8

import ctypes

STD_INPUT_HANDLE = -10

STD_OUTPUT_HANDLE= -11

STD_ERROR_HANDLE = -12

FOREGROUND_BLACK = 0x0

FOREGROUND_BLUE = 0x01 # text color contains blue.

FOREGROUND_GREEN= 0x02 # text color contains green.

FOREGROUND_RED = 0x04 # text color contains red.

FOREGROUND_INTENSITY = 0x08 # text color is intensified.

BACKGROUND_BLUE = 0x10 # background color contains blue.

BACKGROUND_GREEN= 0x20 # background color contains green.

BACKGROUND_RED = 0x40 # background color contains red.

BACKGROUND_INTENSITY = 0x80 # background color is intensified.

class Color:

‘‘‘ See msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp

for information on Windows APIs. - www.jb51.net‘‘‘

std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

def set_cmd_color(self, color, handle=std_out_handle):

“”“(color) ->bit

Example: set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)

”“”

bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

return bool

def reset_color(self):

self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

def print_red_text(self, print_text):

self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY)

print print_text

self.reset_color

def print_green_text(self, print_text):

self.set_cmd_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)

print print_text

self.reset_color()

def print_blue_text(self, print_text):

self.set_cmd_color(FOREGROUND_BLUE | FOREGROUND_INTENSITY)

print print_text

self.reset_color()

def print_red_text_with_blue_bg(self, print_text):

self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY| BACKGROUND_BLUE | BACKGROUND_INTENSITY)

print print_text

self.reset_color()

if __name__ == “__main__”:

clr = Color()

clr.print_red_text(‘red‘)

clr.print_green_text(‘green‘)

clr.print_blue_text(‘blue‘)

clr.print_red_text_with_blue_bg(‘background‘)

希望本文所述对大家的Python程序设计有所帮助,

篇5:Windows命令行下修改文件访问控制权限

随着Windows XP/Server 的流行,越来越多的用户开始选择NTFS文件系统,NTFS的好处自然是大大增强了系统的安全性,在“安全”标签页下,我们可以在这里为不同级别的用户设置相应的访问控制权限,包括完全控制、修改、读取和运行、列出文件夹目录、读取、写入、特别的权限等,你只需要在“允许”和“拒绝”下简单勾选即可,点击“高级”按钮还可以设置更多的特殊权限,这里就不多说了,

其实,除了在图形用户界面下对文件或文件夹的访问控制权限进行设置外,我们还可以在命令行方式下完成这项工作,这在由于某些原因无法进入图形用户界面时特别实用,虽然使用时有些麻烦,但却可以救急。

一、使用Cacls.exe命令

这是一个在Windows /XP/Server 2003操作系统下都可以使用的命令,作用是显示或者修改文件的访问控制表,在命令中可以使用通配符指定多个文件,也可以在命令中指定多个用户。命令语法如下:

Cacls filename [/T] [/E] [/C] [/G usererm] [/R user [...]] [/P usererm [...]] [/D user [...]]

Filename:显示访问控制列表(以下简称ACL)

/T:更改当前目录及其所有子目录中指定文件的ACL

/E:编辑ACL而不替换

/C:在出现拒绝访问错误时继续

/G Userer:perm:赋予指定用户访问权限,Perm代表不同级别的访问权限,其值可以是R(读取)、W(写入)、C(更改,写入)、F(完全控制)等。

/R user:撤销指定用户的访问权限,注意该参数仅在与“/E”一起使用时有效。

/P user:perm:替换指定用户的访问权限,perm的含义同前,但增加了“N(无)”的选项。

/D user:拒绝指定用户的访问。

实例一:查看文件夹的访问控制权限

例如,这里我们希望查看h: emp文件夹的访问控制权限,那么只需要在“开始→运行”对话框或切换到命令提示符模式下,键入如下命令:Cacls h: emp

此时,我们会看到所有用户组和用户对h: emp文件夹的访问控制权限项目,这里的CI表示ACE会由目录继承,OI表示ACE会由文件继承,IO表示ACI不适用于当前文件或目录,每行末尾的字母表示控制权限,例如F表示完全控制,C表示更改,W表示写入。

如果你希望查看该文件夹中所有文件(包括子文件夹中的文件)的访问控制权限,可以键入“Cacls h: emp .”命令。

实例二:修改文件夹的访问控制权限

假如你希望给予本地用户wzj9999完全控制h: emp文件夹及子文件夹中所有文件的访问权限,只需要键入如下命令:

Cacls h: emp /t /e /c /g wzj9999:f

这里的“/t”表示修改文件夹及子文件夹中所有文件的ACL,“/e”表示仅做编辑工作而不替换,“/c”表示在出现拒绝访问错误时继续,而“/g wzj9999:f”表示给予本地用户wzj9999以完全控制的权限,这里的“f”代表完全控制,如果只是希望给予读取权限,那么应当是“r”,

实例三:撤销用户的访问控制权限

如果你希望撤销wzj9999用户对h: emp文件夹及其子文件夹的访问控制权限,可以键入如下命令:

cacls h: emp /t /e /c /r wzj9999

如果只是拒绝用户的访问,那么可以键入如下命令:

cacls h: emp /t /e /c /d wzj9999

二、使用增强工具xcals.exe

在windows 2000资源工具包中,微软还提供了一个名为xcacls.exe的文件控制权限修改工具,其功能较cacls.exe更为强大,可以通过命令行设置所有可以在windows资源管理器中访问到的文件系统安全选项,我们可以从www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp下载,安装后即可使用。

xcacls.exe命令的语法和参数与cacls.exe基本相同,但不同的是它通过显示和修改文件的访问控制列表(acl)执行此操作。在“/g”参数后除保持原有的perm权限外,还增加了spec(特殊访问权限)的选项,另外还增加了“/y”的参数,表示禁止在替换用户访问权限时出现确认提示,而默认情况下,cacls.exe是要求确认的,这样在批处理中调用cacls.exe命令时,程序将停止响应并等待输入正确的答案,引入“/y”参数后将可以取消此确认,这样我们就可以在批处理中使用xcacls.exe命令了。

实例一:查看文件或文件夹的权限

在“开始→运行”对话框或切换到命令提示符模式下,注意请事先将“c:program files esource kit”添加到“系统属性→高级→环境变量→系统变量”中,或者通过cd命令将其设置为当前路径,否则会提示找不到文件,然后键入如下命令:

xcacls h: emp

此时,可以查看到所有用户组或用户对h: emp文件夹的访问控制权限,io表示此ace不应用于当前对象,ci表示从属窗口将继承此ace,oi表示从属文件将继承该ace,np表示从属对象不继续传播继承的ace,而每行末尾的字母表示不同级别的权限,例如f表示完全控制,c表示更改,w表示写入。

实例二:替换文件夹中的acl而不确认

xcacls h: emp /g administrator:rw/y

以上命令将替换h: emp文件夹中所有文件和文件夹的acl,而不扫描子文件夹,也不会要求用户确认。

实例三:赋予某用户对文件夹的控制权限

xcacls h: emp /g wzj9999:rwed;rw /e

以上命令将赋予用户wzj9999对h: emp文件夹中所有新建文件的读取、写入、运行和删除权限,但需要说明的是,这条命令只是赋予了用户对文件夹本身的读写权限,而不包括子文件夹下的文件。

对普通用户来说,cals.exe和xcacls.exe的作用可能不是那么明显,这在windows 2000/xp/server 2003的无人值守安装中特别有用,管理员可以为操作系统所在的文件夹设置初始访问权限;在将软件分发到服务器或工作站时,还可以借助xcacls.exe提供单步保护,以防止用户误删除文件夹或文件。

篇6:如何在命令行下设置Windows XP防火墙

命令:netsh firewall

参数:

? // 显示命令列表

add // 添加防火墙配置

delete // 删除防火墙配置

dump // 显示一个配置脚本

help // 显示命令列表

reset // 将防火墙配置重置为默认值。

set // 设置防火墙配置

show // 显示防火墙配置

add allowedprogram // 添加防火墙允许的程序配置。

add portopening // 添加防火墙端口配置

delete allowedprogram // 删除防火墙允许的程序配置

delete portopening // 删除防火墙端口配置

set allowedprogram // 设置防火墙允许的程序配置

set icmpsetting // 设置防火墙 ICMP 配置

set logging // 设置防火墙记录配置

set multicastbroadcastresponse // 设置防火墙多播/广播响应配置

set notifications // 设置防火墙通知配置

set opmode // 设置防火墙操作配置

set portopening // 设置防火墙端口配置

set service // 设置防火墙服务配置

show allowedprogram // 显示防火墙允许的程序配置

show config // 显示防火墙配置。

show currentprofile // 显示当前防火墙配置文件

show icmpsetting // 显示防火墙 ICMP 配置

show logging // 显示防火墙记录配置

show multicastbroadcastresponse // 显示防火墙多播/广播响应配置

show notifications // 显示防火墙操作配置

show opmode // 显示防火墙端口配置

show portopening // 显示防火墙端口配置

show service // 显示防火墙服务配置

show state // 显示当前防火墙状态

例如:

命令:netsh firewall show allowedprogram //查看防火墙放行的程序

netsh firewall set portopening TCP 445 ENABLE //打开445端口

netsh firewall set portopening TCP 3389 ENABLE //不用说了,放行终端啦。。

netsh firewall delete allowedprogram C:\\A.exe //删除放行程序A.exe

netsh firewall set allowedprogram C:\\A.exe A ENABLE //添加程序C盘下的A.exe并放行

netsh firewall add allowedprogram C:\\A.exe A ENABLE //添加程序C盘下的A.exe并放行

set allowedprogram和add allowedprogram效果一样都可以添加放行程序,C:\\A.exe是程序路径A是在防火墙里显示的程序名字,这个名字可以 随便写,别有用心的家伙可以用个迷惑性的名字。。呵呵。。其他命令自己试试吧。。

要是终端登陆做了IP限制的可以用netsh firewall set portopening TCP 3389 远程桌面 ENABLE CUSTOM 1.1.1.1

篇7:Go语言单链表实现方法

作者:OSC首席键客 字体:[增加 减小] 类型:

1. singlechain.go代码如下:

代码如下:

//////////

//单链表 -- 线性表

package singlechain

//定义节点

type Node struct {

Data int

Next *Node

}

/*

* 返回第一个节点

* h 头结点

*/

func GetFirst(h *Node) *Node {

if h.Next == nil {

return nil

}

return h.Next

}

/*

* 返回最后一个节点

* h 头结点

*/

func GetLast(h *Node) *Node {

if h.Next == nil {

return nil

}

i := h

for i.Next != nil {

i = i.Next

if i.Next == nil {

return i

}

}

return nil

}

//取长度

func GetLength(h *Node) int {

var i int = 0

n := h

for n.Next != nil {

i++

n = n.Next

}

return i

}

//插入一个节点

//h: 头结点

//d:要插入的节点

//p:要插入的位置

func Insert(h, d *Node, p int) bool {

if h.Next == nil {

h.Next = d

return true

}

i := 0

n := h

for n.Next != nil {

i++

if i == p {

if n.Next.Next == nil {

n.Next = d

return true

} else {

d.Next = n.Next

n.Next = d.Next

return true

}

}

n = n.Next

if n.Next == nil {

n.Next = d

return true

}

}

return false

}

//取出指定节点

func GetLoc(h *Node, p int) *Node {

if p < 0 || p >GetLength(h) {

return nil

}

var i int = 0

n := h

for n.Next != nil {

i++

n = n.Next

if i == p {

return n

}

}

return nil

}

2. main.go代码如下:

代码如下:

package main

import “fmt”

import “list/singlechain”

func main {

//初始化一个头结点

var h singlechain.Node

//往链表插入10个元素

for i := 1; i <= 10; i++ {

var d singlechain.Node

d.Data = i

singlechain.Insert(&h, &d, i)

fmt.Println(singlechain.GetLoc(&h, i))

}

fmt.Println(singlechain.GetLength(&h))

fmt.Println(singlechain.GetFirst(&h))

fmt.Println(singlechain.GetLast(&h))

fmt.Println(singlechain.GetLoc(&h, 6))

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇8:Go语言生成随机数的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:转载

golang生成随机数可以使用math/rand包

代码如下:

package main

import (

“fmt”

“math/rand”

)

func main() {

for i:=0; i<10; i++ {

fmt.Println(rand.Intn(100))

}

}

发现这种情况,每次执行的结果一样,不满意

代码如下:

package main

import (

“fmt”

“time”

“math/rand”

)

func main() {

r := rand.New(rand.NewSource(time.Now().UnixNano()))

for i:=0; i<10; i++ {

fmt.Println(r.Intn(100))

}

}

这种方式就可以使用时间种子来获取不同的结果了

希望本文所述对大家的Go语言程序设计有所帮助,

篇9:Go语言实现简单留言板的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:

代码如下:

package main

import (

// “fmt”

“io”

“log”

“net/http”

“text/template”

“time”

“database/sql”

“github.com/ziutek/mymysql/godrv”

)

// 留言结构

type Liuyan struct {

Id int

Name string

Content string

Time int

}

// 显示留言时间

func (l Liuyan) ShowTime string {

t := time.Unix(int64(l.Time), 0)

return t.Format(“-01-02 15:04:05”)

}

func main() {

godrv.Register(“SET NAMES utf8”)

// 连接数据库

db, err := sql.Open(“mymysql”, “tcp:127.0.0.1:3306*go/root/123456”)

if err != nil {

panic(err)

}

defer db.Close()

// 准备模板

tpl, err := template.New(“liuyanbook”).Parse(html)

if err != nil {

panic(err)

}

// 显示留言页面 /

requestList := func(w http.ResponseWriter, req *http.Request) {

// 查询数据

rows, err := db.Query(“select * from liuyan”)

if err != nil {

log.Fatal(err)

}

defer rows.Close()

// 获取数据

lys := []Liuyan{}

for rows.Next() {

ly := Liuyan{}

err := rows.Scan(&ly.Id, &ly.Name, &ly.Content, &ly.Time)

if nil != err {

log.Fatal(err)

}

lys = append(lys, ly)

}

// 显示数据

err = tpl.ExecuteTemplate(w, “list”, lys)

if err != nil {

log.Fatal(err)

}

}

// 留言页面 /liuyan

requestLiuyan := func(w http.ResponseWriter, req *http.Request) {

err := req.ParseForm()

if err != nil{

log.Fatal(err)

}

if “POST” == req.Method {

if len(req.Form[“name”]) < 1 {

io.WriteString(w, “参数错误!\\n”)

return

}

if len(req.Form[“content”]) < 1 {

io.WriteString(w, “参数错误!\\n”)

return

}

name := template.HTMLEscapeString(req.Form.Get(“name”))

content := template.HTMLEscapeString(req.Form.Get(“content”))

// sql语句

sql, err := db.Prepare(“insert into liuyan(name, content, time) values(?, ?, ?)”)

if err != nil {

log.Fatal(err)

}

defer sql.Close()

// sql参数,并执行

_, err = sql.Exec(name, content, time.Now().Unix())

if err != nil {

log.Fatal(err)

}

// 跳转

w.Header().Add(“Location”, “/”)

w.WriteHeader(302)

// 提示信息

io.WriteString(w, “提交成功!\\n”)

return

}

err = tpl.ExecuteTemplate(w, “liuyan”, nil)

if err != nil {

log.Fatal(err)

}

}

http.HandleFunc(“/”, requestList)

http.HandleFunc(“/liuyan”, requestLiuyan)

err = http.ListenAndServe(“:12345”, nil)

if err != nil {

log.Fatal(“ListenAndServe: ”, err)

}

}

// 网页模板

var html string = `{{define “list”}}{{/* 留言列表页面 */}}

给我留言

{{range .}}

{{.Id}}{{.Name}}{{.Content}}{{.ShowTime}}

{{end}}

{{end}}

{{define “liuyan”}}{{/* 发布留言页面 */}}

姓名:

内容:

{{end}}

希望本文所述对大家的Go语言程序设计有所帮助,

篇10:Go语言生成素数的方法

作者:依山带水 字体:[增加 减小] 类型:转载

这篇文章主要介绍了Go语言生成素数的方法,实例分析了Go语言生成素数的技巧,需要的朋友可以参考下

本文实例讲述了Go语言生成素数的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

// 生成2, 3, 4, ... 到 channel ‘ch‘中.

func Generate(ch chan<- int) {

for i := 2; ; i++ {

ch <- i // Send ‘i‘ to channel ‘ch‘.

}

}

// 从管道复制值 ‘in‘ 到 channel ‘out‘,

// 移除可整除的数 ‘prime‘.

func Filter(in <-chan int, out chan<- int, prime int) {

for {

i := <-in   // 接收值 ‘in‘.

if i%prime != 0 {

out <- i // 传入 ‘i‘ 到 ‘out‘.

}

}

}

func main() {

ch := make(chan int)   // Create a newchannel.

go Generate(ch) // Launch Generate goroutine.

for i := 0; i < 10; i++ {

prime := <-ch

print(prime, “\\n”)

ch1 := make(chan int)

go Filter(ch, ch1, prime)

ch = ch1

}

}

希望本文所述对大家的Go语言程序设计有所帮助,

go语言base64用法实例

go语言环境搭建简述

GO语言常用的文件读取方式

GO语言求100以内的素数

如何删除WINDOWS下不让删除的文件?

下载go语言执行windows下命令行的方法(集锦10篇)
go语言执行windows下命令行的方法.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档