window 命令bat语法

2019-03-21  本文已影响0人  空气KQ

基础语法

命令帮助语法
命令 /?

image.png

1、@行首有了它的话,这一行的命令就不显示了。
@字符放在命令前将关闭该命令回显,无论此时echo是否为打开状态
2、echo 输出的意思
3、on | off 开关的意思

(1)echo off
只显示执行结果
(2)echo on (默认)
显示执行命令(除echo)和执行结果

> 输出重定向,创建或清空文件,然后把数据输出到文件,类似linux shell的标准输出
>> 把数据追加到文件,类似linux shell的标准输出
4、注释,::rem
5、跳转到标签,":"和 goto
6、定义一个标签,:
7 、pause 运行命令时不关闭窗口
8、Call 命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用
语法

call [Drive:][Path] FileName [BatchParameters] [:label [arguments]

参数

[Drive:}[Path] FileName

指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。
9、start,调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用
打开D盘

start explorer d:\

10、choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
11、 %x 参数
%1 -- 第1个参数
%2 -- 第2个参数
%3 -- 第3个参数
11、errorlevel程序返回码

echo %errorlevel%

每个命令运行结束,可以用这个命令行格式查看返回码
用于判断刚才的命令是否执行成功
默认值为0,一般命令执行出错会设 errorlevel 为1
12、title设置cmd窗口的标题
13、find在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
"string" 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。
Find常和type命令结合使用
Type [drive:][path]filename | find "string" [>tmpfile] #挑选包含string的行
Type [drive:][path]filename | find /v "string" #剔除文件中包含string的行
Type [drive:][path]filename | find /c #显示文件行数
以上用法将去除find命令自带的提示语(文件名提示)
14、pushd 和 popd切换当前目录

@echo off
c: & cd\ & md mp3       #在 C:\ 建立 mp3 文件夹
md d:\mp4               #在 D:\ 建立 mp4 文件夹
cd /d d:\mp4            #更改当前目录为 d:\mp4
pushd c:\mp3            #保存当前目录,并切换当前目录为 c:\mp3
popd                    #恢复当前目录为刚才保存的 d:\mp4

其他看这个文章
https://www.cnblogs.com/iTlijun/p/6137027.html

1.常用命令举例

a.创建文件夹: md D:\mybat //将在D盘下创建一个名为 mybat的文件夹

b.删除文件夹: rd D:\mybat //将删除D盘中的mybat文件夹删除
c.删除文件夹中的文件: del D:\mybat\sheepmu.txt //删除文件sheepmu.txt
del D:\mybat\sheepmu.txt /q //安静模式删除,即删除时不弹出是否删除的提示框
d.复制文件 : xcopy D:\mybat\sheepmu.txt D:\mybat1 //若D中无mybat1这个文件夹则会创建文件夹再复制
e.向文件中写入内容: echo sheepmu >> D:\mybat\sheepmu.txt //如果这个文件不存在就创建文件并输入。如果是文件 夹不存在就不会成功! >>与>的区别是>是覆盖掉原来 的;>>是直接输入到原来的尾部

f.显示文件中内容: type D:\mybat\sheepmu.txt

g.更改文件名后缀: ren D:\mybat*.txt *.html

2.批处理小例子

a.检查是否中冰河

@echo off

netstat -a -n > D:\mybat\sheepmu.txt

type D:\mybat\sheepmu.txt | find "7626" && echo 遭了,中了!

pause & exit
解析:

第一行:echo off 表示关闭显示,@表示不显示 echo off本身

第二行:netstat 显示协议及当前tcp/ip连接, -a表示显示所有连接和侦听端口;-n表示以数字的形式显示地址和;并把这些信息写入到文件D:\mybat\sheepmu.txt中。

第三行: type 表示显示文件D:\mybat\sheepmu.txt中内容;

               |    表示把|前面的输出到|后面的;

              && 表示如果前面成功才执行后面的;

第四行: & 表示且,即暂停且退出。

b.清理系统垃圾

@echo off

if exist C:\windows\temp*.* del C:\windows\temp*.*

if exist C:\windows\History*.* del C:\windows\History*.*

if exist C:\windows\recent*.* del C:\windows\recent*.*

exist

解析:如果存在该文件就删除该文件。注意:删除文件夹用 rd ;删除文件用 del

3.注意事项

a.批处理脚本编写时最好的老师就是小黑老师啦,打开命令行窗口,输入命令加上/?就会有详细的说明,比如: netstat /?

b.pause 命令可以方便我们查看命令执行到了那一步,因为在bat脚本运行时若出现脚本错误窗口会一闪而过。

c.批处理执行过程中可以按 Ctrl+C退出,这对于出现死循环时非常有用。

gulp bat安装

@echo off
cd /d %~dp0
echo "淘宝镜像,加快速度"
call npm install -g cnpm --registry=https://registry.npm.taobao.org
echo "安装全局gulp"
call cnpm install -g  gulp
echo "创建文件package.json"
echo ^{"name": "gulp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {"test": "echo \"Error: no test specified\" && exit 1"}, "keywords": [], "author": "", "license": "ISC", "devDependencies": {"accord": "^0.30.0", "ansi-cyan": "^0.1.1", "ansi-red": "^0.1.1", "cnpm": "^6.0.0", "core-util-is": "^1.0.2", "gulp": "^3.0.0", "gulp-clean": "^0.4.0", "gulp-clean-css": "^4.0.0", "gulp-concat": "^2.6.1", "gulp-less": "^3.0.1", "gulp-rename": "^1.4.0", "gulp-sass": "^4.0.2", "gulp-sourcemaps": "^2.6.5", "gulp-uglify": "^3.0.2", "install": "^0.12.2", "less": "^3.9.0", "pump": "^3.0.0", "rename": "^1.0.4"} }^ > package.json
echo '执行更新安装操作'
call cnpm install
::目前没搞定如何原样的写入文件
echo "监听脚本";
echo '@echo '>watch.bat
echo 'gulp watch '>>watch.bat
echo ' @pause'>>watch.bat
echo '完成本次操作'
@pause
上一篇下一篇

猜你喜欢

热点阅读