以下是小编整理的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语言程序设计有所帮助,
- ubuntu下安装svn详解命令行介绍linux操作系统2024-06-18
- javascript模拟Windows系统下的扫雷游戏2023-03-21
- 作文语言创新方法2023-01-17
- 工程指令单机执行监控方法研究2023-02-14
- UNIX多用户系统下信号量操作详解Windows系统2023-08-23
- 巧破ntfs下的win 口令Windows安全2023-09-05
- 下处理面试突发状况的方法2021-10-18
- 跨站脚本执行漏洞代码的六个方法2022-12-11
- 国旗下关于语言美的讲话稿2025-09-01
- 因材施教视域下的教育方法浅议2023-06-06