最近没事的时候,准备研究一下Windows命令行参数的知识,因为每次自己在操作电脑时总是效率太慢,如果能够了解Windows参数的一些知识,绝对能提高效率!
基本外部命令和内部命令
首先是基本的知识,一般Windows命令包含内部命令和外部命令,其中外部命令比较多,外部命令一般在%SystemRoot%\System32
里面,我的电脑%SystemRoot%=C:\Windows
,估计别人的也差不多。还有一个比较常用的路径%UserProfile%=C:\User\Administrator(或者你自己命名的用户,默认是Administrator)
,这个路径代表你现在使用的用户路径。
内部命令比较少,这里可以罗列出来:
命令名 | 描述 |
---|---|
assoc | 显示或者修改当前的文件扩展关联 |
break | 设置调试中断 |
call | 在一个脚本内调用程序或者其他脚本 |
cd(chdir) | 显示当前目录名或者改变当前目录位置 |
cls | 清理命令窗口并清除屏幕缓存区 |
color | 设置命令shell窗口的文本与背景颜色 |
copy | 将文件从一个位置复制到另一个位置,或者将多个文件连接在一起 |
date | 显示或者设置系统时间 |
del(erase) | 删除指定文件、多个文件或目录 |
dir | 显示当前目录或者指定目录中的子目录与文件列表 |
dpath | 允许程序打开指定目录中的数据文件(就像在当前目录中一样) |
echo | 显示命令行的文本字符串,设置命令回显状态(on|off) |
endlocal | 变量局部化结束 |
exit | 退出命令shell |
for | 对一组文件中的每个文件运行指定的命令 |
ftype | 显示当前文件类型或者修改文件类型(文件扩展关联中使用) |
goto | 将命令解释器直接跳转到批处理脚本中某个标记行 |
if | 命令的条件执行 |
md(makedir) | 在当前目录或者指定目录下创建子目录 |
mklink | 为文件或者目录创建符合连接或者硬连接 |
move | 将一个或者多个文件从当前目录或者指定源目录移动到指定的目标目录,也可以用于对目录进行重命名 |
path | 显示或者设置操作系统用于搜索可执行文件与脚本的命令路径 |
pause | 暂停批处理程序,并显示以下消息: 请按任意键继续… |
popd | 弹出由pushd保存的目录,使其成为当前目录 |
pushd | 保存当前目录位置,之后跳转到指定的目录(可选) |
prompt | 为命令提示符设置文本 |
rd(rmdir) | 移除目录(也可以移除其子目录) |
rem | 在批处理脚本或者Config.sys中设置标记 |
ren(rename) | 对一个或者多个文件进行重命名 |
set | 显示当前环境变量,或者为当前命令shell设置临时变量 |
setlocal | 在批处理脚本中标记变量局部化的开始 |
shift | 改变批处理脚本中可替换变量的位置 |
start | 启动一个单独的窗口,以便运行指定的程序或者命令 |
time | 显示或者设置系统时间 |
title | 设置命令shell窗口的标题 |
type | 显示文本文件的内容 |
verify | 在将文件写入磁盘后,指令操作系统对其进行验证 |
vol | 显示磁盘卷标与序列号 |
以上就是内部命令,而外部命令太多了,这里就不再罗列,以后用到的时候慢慢记录。
首先学习的第一个外部命令是setx,这个命令和内部命令set很像,区别是这个命令可以永久的更改用户环境变量,而set是临时改变,比如我想增加一个
C:\script
文件夹到path里面,就可以使用: setx Path "%Path;C:\script"
或者setx Path "C:\script;%Path"
两者的区别是搜索先后顺序不同罢了。
管理文件扩展与文件关联
通过使用文件扩展,在命令行只需要输入命令名就可以执行命令,有两种类型的文件扩展:
- 可执行文件的文件扩展。可执行文件是使用环境变量%PATHEXT%进行设置的,可以输入set pathext
来查看当前设置,一般是PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
,这些文件都不需要在命令行中显示的指定文件扩展名。
- 应用程序的文件扩展。应用程序的文件扩展也就是文件关联。通过文件关联可以把参数传递给可执行文件,从而等价于双击鼠标打开对应文件。系统中的已知扩展都对应有文件关联,通过assoc
查看,比如assoc.exe
即查看后缀为exe文件的文件关联。查询得到.exe=exefile
。然后可以使用ftype
查看映射的文件类型,比如: ftype exefile
得到exefile="%1" %*
,即说明运行exe文件时,Windows会判断第一个值为要运行的命令,其他的则为要运行的参数。
简单脚本编写规则
有了Windows系统命令的基本知识,就可以写一些简单脚本程序了,与C++、java这类程序有点区别,写脚本程序不需要;
来进行断开程序段,在命令读取下面任意字符就终止:
- 断行(比如按下shift+enter键)
- 回车与断行(比如按下enter键)
- 文件尾标志
常见语句和命令:
- cls
清除控制台窗口,充值屏幕缓冲
- rem
在脚本中创建注释
- echo
在命令行中显示消息、关闭或者打开命令回显
- @
以行为单位控制命令的回显方式
- title
设置命令shell窗口的标题栏
- color
设置命令shell窗口使用的文本色与背景色
为脚本添加注释
一般注释信息有:
- [ ] 脚本创建时间和最后修改时间
- [ ] 脚本创建者
- [ ] 脚本创建者联系方式
- [ ] 脚本用途
- [ ] 脚本输出是否保存及其保存位置
例如下面一个简单的脚本程序:
rem ************************
rem Script: SysInfo.bat
rem Creation Data: --
rem Last Modified: --
rem Author: XiaoDong Wang
rem Email: @qq.com
rem ************************
rem Description: Display system configuration information
rem include system name. IP configuration
rem and Windows version.
rem ************************
rem Files: Stores output in C:\currentSys.txt
rem ************************ @echo off
hostname > C:\currentSys.txt
ver >> C:\currentSys.txt
ipconfig -all >> C:\currentSys.txt
- cls
清除控制台窗口,充值屏幕缓冲
- rem
在脚本中创建注释
- echo
在命令行中显示消息、关闭或者打开命令回显
- @
以行为单位控制命令的回显方式
- title
设置命令shell窗口的标题栏
- color
设置命令shell窗口使用的文本色与背景色
这个程序虽然简单,但是注释的方式值得学习!以后一定要严格要求自己这样注释!!主要上面程序的第一行:@
代表后面一句话不显示、echo off
代表关闭下面所有行的回显,非常好用,建议所有脚本第一行都加上这句话,是的脚本运行后不用显示一堆无用信息。
-
1、首先用记事本新建一个文件夹
-
2、然后在记事本里输入ipconfig /release和ipconfig /renew命令
-
3、将文本另存为.bat为后缀的文件
-
4、鼠标右键选中编辑好的脚本文件,选择以管理员方式运行
-
5
5、这时我们电脑就会自动断开网络然后重新连接网络了:
我的CMD输入任何命令都显示 不是内部命令也不是外部命令 也不是可运行的外部程序或批处理文件
兄弟,你电脑的环境变量%path%是不是定义错了?安装少数软件可能会修改path值,建议你重新设置下环境变量。
具体设置方法:右键“我的电脑”→“属性”→“高级”→”环境变量”
找到系统变量副框,继续找到path,双击,将变量值输修改成:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
然后再去试试你的命令吧~
=======================================
看到你的补充截图,建议你重置一下环境变量:将我给的代码覆盖以前的环境变量设定,当然覆盖前请先备份之前变量路径。
你命令打错了…………
要不就是你的系统PATH变量的设置有问题
你在CMD界面打path命令看一下 有没有类似
PATH=C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\
这样的结果的
如果没有就自己设置一下。
Windows命令行参数的知识(一)的更多相关文章
-
Windows命令行参数(不断更新)
这里先讲一下系统变量: 注意:一旦将路径加入到环境变量Path中,那么运行它下面的程序的时候就不用非得指定到目标路径中,直接键入命令就行了. 1.type命令:打开并读取文件里面的内容. C:\Use ...
-
使用getopt函数对windows命令行程序进行参数解析
getopt()是libc的标准函数,很多语言中都能找到它的移植版本. // -b -p "c:\input" -o "e:\test\output" bool ...
-
Windows下解析命令行参数
linux通常使用GNU C提供的函数getopt.getopt_long.getopt_long_only函数来解析命令行参数. 移植到Windows下 getopt.h #ifndef _GETO ...
-
windows WTL使用命令行参数
两中方法: 第一种: int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLin ...
-
C基础知识(14):命令行参数
命令行参数是使用main()函数参数来处理的,其中,argc是指传入参数的个数,argv[]是一个指针数组,指向传递给程序的每个参数. 应当指出的是,argv[0]存储程序的名称,argv[1]是一个 ...
-
C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
-
7z命令行参数中的路径
最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下.本文中所有demo使用的7z版本为:15.14 x64. 压缩某个文件夹 下面的命令会把g:\temp\目录和目录 ...
-
我也要学C语言-第十九章:命令行参数
C语言的语法规定main函数是带连个参数的,因为当初是考虑是在控制台下写程序.于是用户可以给参数微控程序.其实现在的WINDOWS程序也可以带参数.一般正规军写的应该程序一般都带命令行参数,帮助文档, ...
-
命令行参数(argc, argv)
每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过两个入参提供给main()函数. ...
随机推荐
-
vim1
Vim模式介绍 几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim接入不同的方式:命令目录(鼠标或者键盘驱动),组合键(CTRL和ALT组成)或鼠标输入.Vim和vi一样, ...
-
Jquery获取第一个子元素
如获取id为divId的div下的第一个子div $("#divId").children("div").get(0) 但得到的是一个dom对象,如果要得到Jq ...
-
linux_shell_根据网站来源分桶
应用场景: 3kw行url+\t+html记录 [网站混合] 需要:按照网站来源分桶输出 执行shell cat */*pack.html|awk -F '\t' '{ split($1,arr,&q ...
-
python访问http的GET/POST
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7562295.html 作者:窗户 Q ...
-
ul li自适应居中导航
<BODY> <div class="box"> <ul class="nav"> <li>邮箱管理</l ...
-
.netcore使用SocketAsyncEventArgs Pool需要注意!
在.net中做网络通讯往往都会用到SocketAsyncEventArgs,为了得到更好的性能配合Pool复用SocketAsyncEventArgs可以得到一个更好的效果,但在dotnet core ...
-
MySQL(八)子查询和分组查询
一.子查询 1.子查询(subquery):嵌套在其他查询中的查询. 例如:select user_id from usertable where mobile_no in (select mobil ...
-
CS224d 单隐层全连接网络处理英文命名实体识别tensorflow
什么是NER? 命名实体识别(NER)是指识别文本中具有特定意义的实体,主要包括人名.地名.机构名.专有名词等.命名实体识别是信息提取.问答系统.句法分析.机器翻译等应用领域的重要基础工具,作为结构化 ...
-
Python安装pycurl失败,及解决办法
Centos安装pycurl centos 安装pycurl yum install python-devel curl-devel pip3 install pycurl Mac(老版本)安装pyc ...
-
nginx upstream 实现负载均衡
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...