windows dos命令
查看当前目录下的文件结构: dir
跳转盘符:
进入D盘 d: (不区分大小写)
cd 命令的使用:
在 cmd 里面输入: cd /? 来查看 cd 命令和参数的使用
语法:cd [/D] [drive:][path]
cd [..]
参数:
-
- .. 表示父目录,cd .. 进入上一级目录
- cd /d(大小写无所谓) 强制进入其他盘符或文件目录下,drive 盘符,path 文件路径
- cd driver:显示指定驱动器的当前目录
- cd 显示当前驱动器和目录,一般通过 %cd% 加以引用
- cd 命令不把空格作为分割符,目录名中有空格也可以识别
- cd \ 切换回当前磁盘的根目录下
显示当前驱动器和目录 c:\Users>cd |
显示驱动器D的当前目录 c:\Users>cd d: |
切换目录到TMP 2,有空格 D:\tmp>cd ../TMP 2 d:\TMP 2> |
使用\d切换目录 D:\TMP 2>cd /d c:\Users c:\Users> |
echo用法
echo off/echo on/@echo off/@echo on 用法小结:
-
- echo off 关闭命令回显
- echo on 启用命令回显
- @ 放在命令前面,关闭该命令的回显
新建a.bat文件 echo 'happy' echo off echo happy2 echo on echo '----------------' @echo off echo happy3 echo on |
执行a.bat |
echo 换行,相当于输入一个回车
格式:echo.
注意命令中的“.”要紧跟在ECHO后面,中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;/[]+ 这些任一符号替代。
命令ECHO.输出的回车,经DOS管道转向可以作为其它命令的输入,比如echo.|time即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态。
答复命令中的提问
格式:ECHO 回复|命令表达式
作用:通过管道命令 | 把“回复”作为输入传导给后面的“命令表达式”,并作为“命令表达式”的输入。
建立新文件或增加文件内容
格式:echo 文件内容>文件名
XCopy复制文件和目录树
XCOPY src desc [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J] [/EXCLUDE:file1[+file2][+file3]...] [/COMPRESS]
src 指定要复制的文件。 desc 指定新文件的位置和/或名称。
/A 仅复制有存档属性集的文件,但不更改属性。
/M 仅复制有存档属性集的文件,并关闭存档属性。
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。如果没有提供日期,则只复制源时间比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制该文件。例如,指定如 \obj\ 或 .obj 的字符串会分别排除目录 obj 下面的所有文件或带有.obj 扩展名的所有文件。
/P 创建每个目标文件之前均进行提示。
/S 复制目录和子目录,不包括空目录。
/E 复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件的大小。
/W 提示在复制前按键。在开始复制文件之前显示以下消息并等待你的响应:Press any key to begin copying file(s)
/C 即使有错误,也继续复制。
/I 如果目标不存在,且要复制多个文件,则假定目标必须是目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源文件名和目标文件名。
/L 显示要复制的文件。
/G 允许将加密文件复制到不支持加密的目标。
/H 隐藏文件和系统文件也会复制。
/R 覆盖只读文件。
/T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属性。一般的 Xcopy 会重置只读属性。
/N 用生成的短名称复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 取消提示以确认要覆盖现有目标文件。
/-Y 触发提示,以确认要覆盖现有目标文件。
/Z 在可重新启动模式下复制网络文件。
/B 复制符号链接本身与链接目标。
/J 复制时不使用缓冲的 I/O。推荐复制大文件时使用。
/COMPRESS 如果适用,在传输期间请求网络压缩。
开关 /Y 可以预先在 COPYCMD 环境变量中设置。这可能被命令行上的 /-Y 覆盖。
使用举例和参数说明如下:
1、如只是单纯地复制 E:\ 盘上所有文件到 D:\ 盘上,就输入“ xcopy e:\*.* d: /s /h "就行啦!如果在复制过程中,你不想复制文件,就使用热键“Ctrl " +"Pause /break" 来中断复制。
2、如果想把E:\ 盘上所有文件复制到D:\盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制文件中出现的)那可怎么办才好呢?
那就输入“ xcopy e:\*.* d: /s /h /d /y ”就行啦。他能查出那些文件是已经复制过去啦,那些文件还没有复制过去的。
3、当然我们也会碰到这种情况,一些文件我们已经修改过啦!网上面又有最新版本的啦。原来备份的那份文件我们要及时更新啦。那怎么才能同步更新呢?当然我们可以把最新的好份文件复制过去,这也是一种解决办法。
如果修改的文件有很多的,自己到时候也记不清楚那份文件是更新过的。这么多的原来备份的那份文件都要更新,都要复制过去,可不是件省力气的活,而且容易出错和一些文件被忘记啦!
那和上面一样也同样输入" xcopy e:\*.* d: /s /h /d /y "就行啦!
4、还有一种情况我们经常也碰到的,因为复制某个文件出错或者这个文件在使用中,而停止了复制工作,(比如,复制C 盘上的 windows xp )我们这时候想跳过某个出错的文件和某个正在使用中文件而继续复制其他文件。
在多加入一个参数" /c "就是 " xcopy e:\*.* d: /s /h /d /c /y "就行啦!
5、有时候我们想XCOPY 变为自动复制,并且复制完成后关闭电脑,可以建立一个批处理文件,新建文本文档,更名为XCOPY.BAT 当然扩展名原来是TXT 格式的要更名为BAT 在这个 XCOPY.BAT 中输入
xcopy e:\*.* d: /s /h /c /y
shutdown -s
然后双击xcopy.bat 运行它即可。
del 是用来删除文件的, 不能进行删除文件夹
在 cmd 里面输入: del /? 来查看 del 命令和参数的使用
语法:del [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
参数:
names 删除文件的名字, 可以是通配符进行标识
/P 删除文件前,提示确认
/F 强制删除文件
/S 递归删除文件
/Q 无需确认直接删除
/A 根据文件属性进行删除
del C:\DOWNLOAD\*.* 删除download文件夹中的文件
rd 删除文件夹
rd Filemon 删除目录Filemon
rd只能删除空文件夹,要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数,
/s 删除该文件夹及其下面的子目录和文件
/q 无需确认直接删除
rd Filemon /s /q 删除Filemon目录下所有文件
md 创建文件夹
md "D:\tmp2"
环境变量
查看环境变量 set
设置临时环境变量 set BAT_HOME=c:\bat 等号前后没有空格,此命令只对当前窗口有效,批处理或cmd窗口一关闭,变量就恢复原来的值了
设置永久环境变量 setx BAT_HOME C:\bat 此命令只会将变量添加到用户环境变量中。(后续研究)
https://www.cnblogs.com/haicheng92/p/8717841.html
批处理中setlocal enabledelayedexpansion的作用
意思是延迟本地环境变量扩展。变量延迟的启动语句是“setlocal enabledelayedexpansion
”,并且变量要用一对叹号“!!
”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。
批处理运行命令的机制:在cmd执行命令前会对脚本进行预处理,其中有一个过程是变量识别过程,在这个过程中,如果有两个%括起来的如%value%类似这样的变量,就会对其进行识别,并且查找这个变量对应的值,再而将值替换掉这个变量,这个替换值的过程,就叫做变量扩展,然后再执行命令。
@echo off set a=4 set a=5&echo %a% pause
|
结果:4,为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了? 让我们先了解一下批处理运行命令的机制:批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。 我们现在分析一下例1,批处理在运行到这句“set a=5&echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!(没有为什么,批处理就是这样做的。) 为了能够感知环境变量的动态变化,批处理设计了变量延迟。简单来说,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。 |
@echo off setlocal enabledelayedexpansion set a=4 set a=5&echo !a! pause
|
结果:5,由于启动了变量延迟,得到了正确答案。变量延迟的启动语句是“ 分析一下例2,首先“setlocal enabledelayedexpansion”开启变量延迟,然后“set a=4”先给变量a赋值为4,“set a=5&echo !a!”这句是给变量a赋值为5并输出 (由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了)。 |
@echo off setlocal enabledelayedexpansion for /l %%i in (1,1,5) do ( set b=%%i echo !b! ) pause
|
结果:12345 本例开启了变量延迟并用“ 如果不用变量延迟,将echo !b!改为echo %b%会出现什么结果呢?结果是这样的:ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。即没有感知到for语句中的动态变化。 |
参考:https://www.jb51.net/article/29323.htm
查看IP信息 Ipcongfig
清屏 Cls
退出 ctrl+c
小技巧--获取dos命令大全
在命令行中执行help >dos_help.txt,既可将cmd命令大全保存到dos_help.txt文件中,dos_help.txt文件内容如下所示:
ICACLS 显示、修改、备份或还原文件和目录的 ACL。
IF 在批处理程序中执行有条件的处理操作。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建一个目录。
MKDIR 创建一个目录。
MKLINK 创建符号链接和硬链接
MODE 配置系统设备。
MORE 逐屏显示输出。
MOVE 将一个或多个文件从一个目录移动到另一个目录。
OPENFILES 显示远程用户为了文件共享而打开的文件。
PATH 为可执行文件显示或设置搜索路径。
PAUSE 暂停批处理文件的处理并显示消息。
POPD 还原通过 PUSHD 保存的当前目录的上一个值。
PRINT 打印一个文本文件。
PROMPT 更改 Windows 命令提示。
PUSHD 保存当前目录,然后对其进行更改。
RD 删除目录。
RECOVER 从损坏的或有缺陷的磁盘中恢复可读信息。
REM 记录批处理文件或 CONFIG.SYS 中的注释(批注)。
REN 重命名文件。
RENAME 重命名文件。
REPLACE 替换文件。
RMDIR 删除目录。
ROBOCOPY 复制文件和目录树的高级实用工具
SET 显示、设置或删除 Windows 环境变量。
SETLOCAL 开始本地化批处理文件中的环境更改。
SC 显示或配置服务(后台进程)。
SCHTASKS 安排在一台计算机上运行命令和程序。
SHIFT 调整批处理文件中可替换参数的位置。
SHUTDOWN 允许通过本地或远程方式正确关闭计算机。
SORT 对输入排序。
START 启动单独的窗口以运行指定的程序或命令。
SUBST 将路径与驱动器号关联。
SYSTEMINFO 显示计算机的特定属性和配置。
TASKLIST 显示包括服务在内的所有当前运行的任务。
TASKKILL 中止或停止正在运行的进程或应用程序。
TIME 显示或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗口标题。
TREE 以图形方式显示驱动程序或路径的目录结构。
TYPE 显示文本文件的内容。
VER 显示 Windows 的版本。
VERIFY 告诉 Windows 是否进行验证,以确保文件正确写入磁盘。
VOL 显示磁盘卷标和序列号。
XCOPY 复制文件和目录树。
WMIC 在交互式命令 shell 中显示 WMI 信息。
参考:https://blog.csdn.net/weixin_35828357/article/details/112110186
https://www.jb51.net/article/49588.htm
后续进阶时,可以学习这个 https://blog.csdn.net/qq_36838191/article/details/83046599