【Dos-BatchPrograming】01
——0、
1、文件后缀的延申
官方教程更推荐使用.cmd作为后缀
.cmd和.bat的区别:
http://www.360doc.com/content/12/0810/09/3688062_229346243.shtml
bat后缀面向原始的MS-DOS系统的解释器执行
cmd后缀面向后来的WindowsNT系统的解释器执行,但是NT也兼容了bat后缀
只是dos部分命令不能被NT兼容
2、文件执行
可以使用完整的字符串访问执行
Microsoft Windows [版本 10.0.19041.746]
(c) 2020 Microsoft Corporation. 保留所有权利。 C:\Users\Administrator>"D:\hello.cmd"
hello dos batch!!!
3、变量的赋值符号不能有空格
set var=100
学习参考:
https://www.w3cschool.cn/pclrmsc/tdsgnn.html
——1、echo回显
一、hello-world
echo hello patch program!
pause
输出:
可以发现,echo命令 = 文件绝对路径 + echo命令本身 + 单行的字符串
这样输出出来,然后再输出命令后面的文本?
D:\dos-patch>echo hello patch program!
hello patch program! D:\dos-patch>pause
请按任意键继续. . .
二、取消echo本身的显示
如果不要输出第一行的完整输出,使用@echo命令
@echo hello patch program!
pause
输出:
hello patch program! D:\dos-patch>pause
请按任意键继续. . .
三、echo回显控制
单独列出一行@echo on 表示开启回显
单独列出一行@echo off 表示关闭回显
@echo on
echo the echo command and string will output in screen
@echo off
echo only string output
pause
输出:
D:\dos-patch>echo the echo command and string will output in screen
the echo command and string will output in screen
only string output
请按任意键继续. . .
四、echo空行
使用echo.让输出空出一行,“.”要紧跟在ECHO后面,中间不能有空格
另外,“.”可以用“,:;”/]+\ 这些任一符号替代。
@echo on
echo the echo command and string will output in screen
@echo off
echo only string output
echo.
echo this is a nextline pause
输出:
D:\dos-patch>echo the echo command and string will output in screen
the echo command and string will output in screen
only string output this is a nextline
请按任意键继续. . .
五、echo配合管道完成命令
格式:ECHO 回复|命令表达式
作用:通过管道命令 | 把“回复”作为输入传导给后面的“命令表达式”,并作为“命令表达式”的输入。(注
意,管道命令|的输入方法,shift键 \) 例5
@echo off
rd /s c:\abc
pause 执行显示:
c:\abc, 是否确认(Y/N)? 解释一下,这里abc是一个不为空的文件夹,用rd 命令删除时它将会询问你Y或N,这时你就要手动的输入Y/N了。
OK,我们把批处改一下,这时系统将会自动帮助我们把Y输入确认了
六、利用写入操作进行文件的创建和内容写入
在bat程序文件所在的目录中创建一个新的文件并且内容为空
echo off
echo. >newfile.txt
pause
创建文件的同时并且写入内容
echo off
echo '需要写入的内容' >文件名
七、REM注释
rem 要注释的字符内容
echo off
echo normal content ...
rem hide content...
pause
注释的内容在终端中不会输出
D:\dos-patch>echo off
normal content ...
请按任意键继续. . .
同样使用::也可以进行注释,终端将会理解为无效号标号而进行注释
作用是一样,但是两者的在机器执行的含义不一样
echo off
echo normal content ...
rem hide content...
:: use special char to hide content...
pause
输出:
D:\dos-patch>echo off
normal content ...
请按任意键继续. . .
一些注意事项:
任何以冒号:开头的字符行,在批处理中都被视作标号, 而直接忽略其后的所有内容。
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto 语句可以识别。
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto 无法识别的标号,可以起到注释
作用,所以 :: 常被用作注释符号,其实 : 也可起注释作用
与 rem 不同的是, :: 后的字符行在执行时不会回显, 无论是否用echo on 打开命令行回显状态,
因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下
将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中
——2、CD变更当前工作路径
1、变更工作路径
CD 是 change directory 改变目录的缩写
通常用于终端直接使用,在bat程序中也可以使用,要注意的是cd仅限于同一盘符下的目录变更
不同的盘符下的目录变更,尽管终端不会报错,但是执行是无效的,所以需要这样一个强制执行盘符切换
C:
cd C:\Program Files\Java\jdk1.8.0_261\bin
cd ..
cd .
cd C:\Program Files\
pause
输出:
D:\dos-patch>C: C:\>cd C:\Program Files\Java\jdk1.8.0_261\bin C:\Program Files\Java\jdk1.8.0_261\bin>cd .. C:\Program Files\Java\jdk1.8.0_261>cd . C:\Program Files\Java\jdk1.8.0_261>cd C:\Program Files\ C:\Program Files>pause
请按任意键继续. . .
或者在跨盘符切换的路径之前加上参数/d
cd /d C:\Program Files\
2、显示当前工作路径的绝对路径
@echo %cd%
——3、DEL删除
用于删除一个或者多个的文件或者目录,
注意!被删除的文件或者目录无法在回收站中找回
erase '需要删除的文件'
del '需要删除的文件'
没有声明路径,则会从当前工作目录下寻找声明的文件进行删除
del aaa.txt
pause
如果文件已经删除或者不存在此文件则会报错:
D:\dos-patch>del aaa.txt
找不到 D:\dos-patch\aaa.txt D:\dos-patch>pause
请按任意键继续. . .
命令的附带参数:
/P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 从所有子目录删除指定文件。
/Q 安静模式。删除全局通配符时,不要求确认。
/A 根据属性选择要删除的文件
——4、COPY & XCOPY 复制
copy命令只允许文件的拷贝,对目录的复制是无效的
copy '原始文件' '新文件'
1、原始文件和新文件都可以是相对路径或者绝对路径,所以建议使用绝对路径以区分
2、拷贝在同一目录下,一定要更改新文件的名称,两个文件的名称不可以为同一个
3、对目录进行拷贝可以将目录下的文件拷贝新的目录中
4、出现已经存在的文件,拷贝过去的文件会产生冲突,替换,不替换,全部替换三种选择
文件的合并操作:
copy 文件1 + 文件2 ... 文件N 新文件
首参数声明的一系列文件会按照参数描述的顺序在新的文件中进行写入
对于一些音频视频文件可以用这种方法进行简单的拼接处理。
XCOPY对目录进行的操作功能更多
1、复制文件和非空的目录(包括非空的子目录)
xcopy /s c:\xx\xxx\ d:\xx\sss\
复制C盘的xx目录下的xxx目录下的所有文件及子目录到d盘的xx目录下的sss目录中
并且排除掉空的目录
2、/T 只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含 /e 选项。
xcopy /e c:\xx\xxx\ d:\xx\sss\
3、/Y 禁止提示您确认要覆盖现存的目标文件。(强制进行覆盖操作)
4、/H 复制具有隐藏和系统文件属性的文件。默认情况下xcopy 不复制隐藏或系统文件。
5、文件还是目录?
★注意指定 Destination 是文件还是目录。
如果 Destination 不包含现有目录且不以反斜杠 (\) 结尾,会出现下列消息: Does destination specify a file name
or directory name on the target
(F = file, D = directory)? 系统将会询问你
目标 X:\XXX 是文件名还是目录名
(F = 文件,D = 目录)?
如果要将一个或多个文件复制到一个文件,请按 F。如果要将一个或多个文件复制到一个目录,请按 D。
——5、MD目录创建
Make Directory 创建目录
windows操作系统允许目录的名称含有空格,所以在一般的文件操作中,建议使用双引号进行修饰以区别参数含义
md 路径 + 目录名
md命令支持多个目录参数,所以可以一次创建多个目录和多层级目录
——6、RD目录删除
Remove Directory 的意思
可以使用rd简写,也可以使用rmdir
该命令默认情况下只删除空的目录
若要删除目录的一切,需要加上 /S参数
rd /s d:\123
参数/q表示安静执行,屏蔽操作警告选择,按照YES回答执行
——7、REN 重命名
Rename的意思,命令ren 或者 rename 都可以执行
rename 原始文件 新文件
可以配合通配符进行批量文件的名称变更
rename *.avi *.txt
注意事项:
★当文件具有隐藏属性或系统属性的时候,ren不能直接重命名,需要把文件的隐藏或系统属性去掉方可更名
——8、MOVE 移动文件
move 文件(目录) 文件(目录)
该命令一样可以实现rename命令
注意事项:
★MOVE命令可以跨分区移动文件,却不可以跨分区移动文件夹。
★对于跨分区移动文件时,如果目标位置存在和将要移动的文件同名时,系统会提示:“文件存在” 最后,命令将不会执行。
★对于隐藏或系统属性的文件,只有把它们的属性去除后,move命令才会执行。
——9、FIND 字符查找
1、在abc.txt中查找字符串abc的行。
find "abc" d:\abc.txt
基本格式:find "要查找的字符串" 要查找的文件(不在当前目录则需要给出完整路径)
2、通过/I 参数可以不区分要查找的字符串“abc”的大小写。
find /i "abc" d:\abc.txt
参数/i代表的是“Ignore”(忽略),也就是忽略大小写。/I 搜索字符串时忽略大小写。
3、通过/n参数我们可以查找到字符串"abc"所在的行号。
find /n "abc" d:\abc.txt
参数/n代表英语单词“Number”(号码).。/N 显示行号。
4、通过/c参数我们可以统计包含"abc"字符串的行数。
find /c "abc" d:\abc.txt
参数/c是英语单词“Count”(计数)的缩写。/C 仅显示包含字符串的行数。
5、在这里表示查找不包含"abc"字符串的行。
find /v "abc" d:\abc.txt
这个参数用于找出文件中不包含指定字符串的行。/V 显示所有未包含指定字符串的行。
注意:find命令中要查找的字符串一字要用双引号" "括起来。
【Dos-BatchPrograming】01的更多相关文章
- 【T-SQL基础】01.单表查询-几道sql查询题
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...
- 【VBA编程】01.第一个VBA程序Hello world
[程序1] 所有程序语言的开始都源于Hello world,那么我们也使用Hello world进行第一个VBA编程 新建Excle文件-----文件-------选项-----自定义功能区域---- ...
- 【java基础】01 计算机基础知识
一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...
- 【FLUENT案例】01:T型管混合器中的流动与传热
案例目录 1 引子1.1 案例描述1.2 案例学习目标2 计算仿真目标3 启动FLUENT并读入网格4 FLUENT工作界面5 网格缩放及检查6 修改单位7 设置模型8 定义新材料9 计算域设置10 ...
- 【OpenFOAM案例】01 elbow
本案例演示利用OpenFOAM的icoFoam求解器计算弯曲管道中的混合流动问题. 1 拷贝tutorials文件 启动终端,且拷贝tutorials文件夹中的文件.利用命令: cp -r $FOAM ...
- 【HIHOCODER 1038】 01背包
链接 问题描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了! 小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖 ...
- 【AtCoder AGC023F】01 on Tree(贪心)
Description 给定一颗 \(n\) 个结点的树,每个点有一个点权 \(v\).点权只可能为 \(0\) 或 \(1\). 现有一个空数列,每次可以向数列尾部添加一个点 \(i\) 的点权 \ ...
- 【C/C++】01背包问题/动态规划
按小蓝书上写的大数据情况下没过,按解答区一个大佬的修改了过了 #include <bits/stdc++.h> using namespace std; class Solution { ...
- 【Pyrosim案例】01:空气流动
1 案例说明 Pyrosim是一款FDS前后处理软件.以一个非常简单的案例来描述Pyrosim的工作流程.本案例计算域中包含一个空气入口,一个环境出口. 案例主要演示以下内容: 创建Vents 增加切 ...
- 【Python爬虫】01:网络爬虫--规则
Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力. the website is the API 课程分为以下部分: 1.requsets库(自动爬取HTML页面.自动网 ...
随机推荐
- SELinux 安全模型——MLS
首发公号:Rand_cs SELinux 安全模型--MLS BLP 模型:于1973年被提出,是一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,主要用于保证系统信 ...
- Linux Topicons Plus桌面工具安装
Topicons Plus是Linux系统GNOME桌面环境的工具,方便于在工具栏显示应用小图标. 1.进入GNOME商店搜搜下载TopIcons Plus工具.下载路径:https://extens ...
- rabbitMq实现系统内的短信发送设计&动态获取BEAN
rabbitMq实现系统内的短信发送设计&动态获取BEAN 1.短信非系统的重要节点操作,可以在任务完成之后,比如下单成功,发送下单成功的mq消息,短信服务接收到mq消息,动态的判断该短信的c ...
- unsupported operand type(s) for +: 'function' and 'str'
unsupported operand type(s) for +: 'function' and 'str' 报错解释:这个错误表明你尝试将一个函数和一个字符串进行加法操作,在Python中,加法不 ...
- 解析Html Canvas的卓越性能与高效渲染策略
一.什么是Canvas 想必学习前端的同学们对Canvas 都不陌生,它是 HTML5 新增的"画布"元素,可以使用JavaScript来绘制图形. Canvas元素是在HTML5 ...
- Linux初始化配置主机名和固定ip
主机名修改 hostname 查看主机名 临时修改主机名 hostname xxx 修改主机名 重启后无效 永久修改主机名 修改/etc/sysconfig/network 固定IP修改 ifconf ...
- Spring之WebMvcConfigurationSupport
WebMvcConfigurationSupport是mvc的核心配置.开发spring,了解和掌握这个是必须的. 为了简约篇幅,本文把"WebMvcConfigurationSupport ...
- VScode连接服务器不用每次都输入密码
VScode连接服务器不用每次都输入密码. 用git或xcode的ssh keygen生成一组不带密码的 rsa2048 的公钥id_rsa_nopasswd.pub和私钥id_rsa_nopassw ...
- Windows下USB声卡音量调整
买了一个绿联的USB声卡, 但是默认的音量太大了,最低音量都响的不行. 查了一下, 发现了一个叫EqualizerAPO的软件可以调整输出设备的音量. https://equalizerapo.com ...
- ubuntu20使用php+apache+adminer搭建mysql网页管理工具
前言 使用 php7+apache2+adminer 搭建网页版mysql管理工具,现将自己的搭建过程记录下来,留作后续参考.可参考其中配置,由于只配置了一次环境,可能有的步骤是多余的,后续可能会 ...