导航:首页 > 程序命令 > 如何写一个命令行

如何写一个命令行

发布时间:2024-03-02 18:51:53

⑴ 如何用C语言写一个类似命令行的程序,能够不断地从其他程序接收命令并执行

举个最简单的例子:

//程序rec_cmd.c
#include<stdio.h>
intmain(intargc,char*argv[])
{
printf("I'vereceivedacommand:%s ",argv[1]);
return0;
}

//程序send_cmd.c
#include<stdlib.h>
intmain(void)
{
system("rec_cmd"printhelloworld"");
system("rec_cmd"printhowareyou"");
return0;
}

以上两个程序一个发送指令,一个接受指令。关键是 system() 函数,可以嵌入命令行,这样就可以实现将程序指令发给另一个程序了。

⑵ 在windows能否用命令行关闭、开启麦克风。请教大神如何写。。。

从以下地址下载最新版本的nircmd
http://www.nirsoft.net/utils/nircmd.html

然后在命令行中可以使用以下命令中的一个或几个:

将麦克风音量增加10000(总音量为65535)
nircmdc changesysvolume 10000 microphone

将麦克风音量降低10000(总音量为65535)
nircmdc changesysvolume -10000 microphone

将麦克风音量设置60000(总音量为65535)
nircmdc setsysvolume 60000 microphone

将麦克风音量设置10000(总音量为65535)
nircmdc setsysvolume 10000 microphone

将麦克风音量设置为非静音
nircmdc mutesysvolume 0 microphone

将麦克风音量设置为静音
nircmdc mutesysvolume 1 microphone

将麦克风音量在静音与非静音之间切换
nircmdc mutesysvolume 2 microphone

nircmdc mutesysvolume 2 microphone

⑶ 如何制作一个自动运行CMD命令的程序

1、在桌面上新建一个文件夹test,将python程序文件001.py放置在该文件夹下。

⑷ python写一个命令,可是我试了半天,不知道参数怎么写。

如果您想写一个命令行程序,可以使用Python的argparse模块来实现。argparse模块提供了一组简单而强大逗桐的命令行解析工具,可以让您快速构建复杂的命令行程序。

下面是一个简单的例子,展示了如何山毕坦使用argparse模块来定义命令行参数:



在上面的代码中,我们首先数陵导入argparse模块,然后创建一个ArgumentParser对象,并使用add_argument()方法来定义命令行参数。其中,第一个参数是参数的名字,第二个参数是参数的别名,help参数用来指定帮助信息,type参数用来指定参数的类型。

在这个例子中,我们定义了两个参数:name和age,分别表示用户的名字和年龄。您可以在命令行中使用


import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-n', '--name', help='Your name')

parser.add_argument('-a', '--age', type=int, help='Your age')

args = parser.parse_args()

print('Hello, {}! You are {} years old.'.format(args.name, args.age))

⑸ windows怎么用命令行写程序

在安装了jdk的电脑上都是可以运行java程序的,当运行测试一些小程序的时候就不必在IDE中了。下面用一个简单的HelloWorld程序看一下运行过程。。

工具/原料
确定配置好了Java运行的环境。
方法/步骤
1
新建一个文本文件,就用windows的记事本吧。
2
打开记事本,输入一段代码。
3
保存的时候把后缀名修改为.java。
4
打开运行,在运行输入栏中输入cmd。打开命令提示窗口。
5
先转到.java文件所在的位置。这里是在d盘的根目录。
6
执行以下一句命令之后,可以看见在.java的文件夹里面生成了一个为.class的类文件。
7
执行以下命令之后,就可以看到结果了。。
END
注意事项
确信要配置好Java运行环境。否则不能运行。

⑹ 编写一个简单的for循环程序,在命令行输出从1加到5的结果

用java写了一个、你看看、 public class isoceles {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入行数:");
int k=input.nextInt();
for (int i = 0; i <k; i++) {
for (int j = 1; j < k-i; j++) {
System.out.print(" ");
}
for (int j = i; j >=0 ; j--) {
System.out.print("* ");
}
System.out.println();
}

for (int i = k-1; i >0; i--) {
for (int j = 0; j < k-i; j++) {
System.out.print(" ");
}
for (int j = i-1; j >=0 ; j--) {
System.out.print("* ");
}
System.out.println();
}

⑺ 如何发布一个Python命令行工具

本文的目的也是非常简单:
写一个Python命令行工具,并且发布到PIP上面.并且在这个过程中给出我自己的一些思考.
如何分解这个发布任务?
只需要进行如下的两个步骤便可以:
1.写好一个Python命令行工具.
2.发布它.
当然,这样不够细致.再细分一下.
1.写好一个Python命令行工具
1.1.命令行的特点,以及Python的如何编写命令行
1.2.如何组织代码结构.
2.发布
2.1.注册pypi账户
2.2.注册在账户下面注册Python包
2.3.上传打包好的Python命令行工具.
3.完善代码
1.写好一个Python命令行工具
写好一个命令行工具首先要知道命令行工具是什么?
在我看来,命令行工具就是一种完成某种类型的任务的终端程序.
也就是基本上没有什么用户界面的程序.
由于基本上没有什么用户界面,所以导致单个命令行的交互能力及其低下.但这种低下的交互性对于一些固定工作而言,简直就是最灵活的工具.只需要输入一些命令便可以完成某种类型的工作.实在是方便的很.
所以,某种程度上,终端程序低交互的缺点反而成了优点.
1.1.Python的如何编写一个简单的命令行
对于Python和命令行交互,我们很容易想出一个比较方便的方案.
sys.argv就是这样的嘛!
我们很容易这样写代码.

1

python testargv.py thisisaargv1

甚至我们也可以这样写命令行,

1

python testargv.py thisisaargv1 -d -f 0

那么,这样写的后果就是,不方便解析出(不是不能,是不方便) -d -f 0 以及 thisisaargv1.
不信的话,你解析一个下面场景的命令行试试,

1
2
3
4

# 用户可能这样输入
danmu.fm -q 1 -v 2
danmu.fm -q 1 -v 2
# 当然,肯定还有漏写啦,等等,你得需要转类型,增加各种blablabla的描述吧,添加默认的参数值吧.

于是Python就提供了一个非常好用的模块可以使用.叫做argparse.
上面的描述就变成了这个样子

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

import argparse

APP_DESC="""
这就是描述
"""
print(APP_DESC)
if len(sys.argv) == 1:
sys.argv.append('--help')
parser = argparse.ArgumentParser()
parser.add_argument('-q','--quality',type=int,default=0,help="download video quality : 1 for the standard-definition; 3 for the super-definition")
parser.add_argument('-v','--verbose', default=0,help="print more debuging information")
parser.add_argument('-s','--store',help="保存流媒体文件到指定位置")
parser.add_argument('-c','--config',default=0,help="读取~/.danmu.fm配置,请~/.danmu.fm指定数据库")
parser.add_argument('url',metavar='URL',nargs='+', help="zhubo page URL (*/)")
args = parser.parse_args()
# 获取对应参数只需要args.quality,args.url之类.
url = (args.url)[0]
print(url)
#其他执行逻辑

保存为danmu.py
这样就可以执行命令

1

python danmu.py -q 1 -v 2

通过args就可以获取参数,然后进行终端程序的参数初始化.
可是这和我们的要求还是不同嘛,我们不想多写Python XXX,我们想直接XXX.就像这样.

1

danmu.fm -q 1 -v 2

不急,下面就是了.
1.2.如何组织代码结构.
于是,现在就要开始组织代码结构了.
我们在最终的代码目录大概是这样的.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

danmu.fm
├── README.md
├── danmufm
│ ├── __init__.py
│ ├── client
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── douyu_client.py
│ │ └── douyu_danmu_client.py
│ ├── danmu.py
│ ├── misc
│ │ ├── __init__.py
│ │ ├── color_printer.py
│ │ ├── downloaders.py
│ │ └── player.py
│ └── model
│ ├── __init__.py
│ └── douyu_msg.py
├── docs
├── setup.cfg
├── setup.py
├── sh.py
└── tests

这就是我上次写的danmu.fm的代码目录.
聪明的你这时候你注意到了:
主要的程序不是放在根目录下面,而是放在第二目录danmufm下面.
2.setup.cfg 是什么鬼东西
3.setup.py 是什么鬼东西
对于上面几点,我们分别进行解释
1.2.1 为什么主要程序在第二目录下
为了把主要的程序分离出来,放在第二目录下面,这样的待会打包以后多出很多文件夹就不会对源码造成干扰.
当然,由于把程序放在了第二目录下面,所以,脚本里面的from import语句应该使用相对路径导入.
相对路径导入的的时候需要注意运行的时候使用如下命令

1

python3 -m danmufm.danmu [xxxx]

1.2.2 setup.cfg
填写如下内容即可.

1
2

[metadata]
description-file = README.md

然后去写Markdown的Readme就好了.
1.2.3 setup.py
这个是重头戏了.
setup这个py文件就是打包配置文件.对这个程序是谁的,有什么依赖,入口是什么,等等等等的配置.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#-*- encoding: UTF-8 -*-
from setuptools import setup, find_packages
"""
打包的用的setup必须引入,
"""

VERSION = '0.1.1'

setup(name='danmu.fm',
version=VERSION,
description="a tiny and smart cli player of douyutv,ximalayad,anmu based on Python",
long_description='just enjoy',
classifiers=[], # Get strings from ?%3Aaction=list_classifiers
keywords='python douyu danmu danmu.fm terminal',
author='twocucao',
author_email='[email protected]',
url='',
license='MIT',
packages=find_packages(),
include_package_data=True,
zip_safe=True,
install_requires=[
'requests',
],
entry_points={
'console_scripts':[
'danmu.fm = danmufm.danmu:main'
]
},
)

官方有distutils这个包管理器工具,设置也非常的简单,只是,它不支持entry_points属性,由于无法使用entry_point,也就无法通过命令来跳转到指定模块运行程序,这也就意味着,官方工具不方便写成命令行.还是setuptools好.
上面需要注意的就是install_requires可以添加依赖.其他的你猜都可以猜出来是做什么的.自己去看代码,我就不多说了.
2.发布
所谓的发布,就是将打包好的程序的某个版本发布到某个仓库中.
2.1.注册pypi账户
到这个上面注册账号:

2.2.注册在账户下面注册Python包
进入对应项目根文件,然后执行

1

python3 setup.py register

这一步程序会让你输入刚刚注册的账号和密码,然后注册该包.注册该包以后,你就有了一个小仓库.可以存放不同版本的danmu.fm.
注册的仓库是可以在这个地址看到的,

2.3.上传打包好的Python命令行工具.
这里需要借助一个小工具,twine.twine是一个更加安全方便上传打包好的代码的工具.

1

pip3 install twine

接着开始打包,打包成两个版本,一个是不需要build的版本,另一个是需要build的版本(顺带吐槽下,这两个诡异的命名).

1

python setup.py sdist bdist_wheel

于是剩下来的就显而易见了,上传build完毕的程序到仓库中.

1

twine upload dist/danmu.fm-0.1.2*

于是,安装一下,测试是否成功

1

pip3 install danmu.fm --upgrade

命令行的工具是这样使用的.

1

danmu.fm -q 2 -v 1

3.完善
不断的完善代码,然后打包终端程序发布到仓库给别人用,这就是整个的PIP打包发布流程.
这个时候,你可能需要使用版本控制软件.
你可能需要增多的代码的测试.

阅读全文

与如何写一个命令行相关的资料

热点内容
星界边境像素压缩 浏览:454
算法分析与设计二手 浏览:979
学编程如何配电脑 浏览:966
怎么看特征找卡密的加密方式 浏览:522
方舟非官方服务器怎么赚钱 浏览:514
明日之后服务器无效是怎么回事 浏览:270
蛋壳公寓app如何查水电表 浏览:716
ad20库中的51单片机怎么找 浏览:624
阿里云服务器有点卡吗 浏览:215
苹果7如何让app后台运行 浏览:170
耐克app预售产品哪里看 浏览:209
补全算法一年级 浏览:131
evd数据调校软件加密 浏览:442
app听课与微信如何设置分屏 浏览:911
加密的excel怎么撤销 浏览:43
java动态数组初始化 浏览:978
编译后程序块过大不适合 浏览:675
李煜pdf 浏览:847
python写游戏逻辑 浏览:489
pdf转换成word免费版在线转换 浏览:464