Windows CMD语法和常用命令

来源:admin  更新:2023-06-02 10:38  分类:网络技术  标签:windows  源文件

Windows CMD ,cmd是command的缩写 。即命令行 。虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全、稳定,有的用户还在使用,所以一般Windows 的各种版本都与其兼容,用户可以在Windows 系统下运行DOS 命令提示符、终端等进一步提高了与DOS下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件。

基本命令

copy

copy 文件a + 文件b

将文件a和文件b合并,合并到a上。

dir

dir /s /b /a-d 显示文件夹以及子文件夹下的文件 /s 显示文件和子文件下的文件 /b不显示文件和摘要 /a d 只显示目录 /a -d 不显示目录,只显示文件

dir /a-d 只显示文件 dir /ad 只显示目录

把目录写入文件时,cmd>a.txt中间不加空格 把当前目录下的所有子文件目录写入a.txt

dir /s /b /ad>a.txt

把当前目录下的所有子文件写入b.txt

dir /s /b /ad>b.txt
 [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件。
  /A          显示具有指定属性的文件。
  属性         D  目录                R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            I  无内容索引文件
               L  解析点             -  表示“否”的前缀
  /B          使用空格式(没有标题信息或摘要)。
  /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
              禁用分隔符显示。
  /D          跟宽式相同,但文件是按栏分类列出的。
  /L          用小写。
  /N          新的长列表格式,其中文件名在最右边。
  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
  /P          在每个信息屏幕后暂停。
  /Q          显示文件所有者。
  /R          显示文件的备用数据流。
  /S          显示指定目录和所有子目录中的文件。
  /T          控制显示或用来分类的时间字符域。
  时间段      C  创建时间
              A  上次访问时间
              W  上次写入的时间
  /W          用宽列表格式。
  /X          显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,
              短名称插在长名称前面。如果没有短名称,在其位置则
              显示空白。
  /4          用四位数字显示年


可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。

cd

//进入d盘
D:
//进入F盘
F:
cd /?     //获取使用帮助

cd \       //跳转到硬盘的根目录

cd C:\WINDOWS  //跳转到当前硬盘的其他文件

d:        //跳转到其他硬盘

cd /d e:\software    //跳转到其他硬盘的其他文件夹,注意此处必须加/d参数。否则无法跳转。

cd..      //跳转到上一层目录

查看目录文件

//查看当前目录下的文件,类似于linux下的ls
dir

如果是需要查看隐藏文件的或者更多操作的话,可以使用 dir /? 来查看其它用法,cmd这点挺好的。

python /?

创建目录和删除目录

//创建目录
md 目录名(文件夹)
//删除目录
rd 目录名(文件夹)

查看本机ip

ipconfig

清除屏幕

cls

类似于linux下的clear

复制文件

copy 路径\文件名 路径\文件名 :把一个文件拷贝到另一个地方。

移动文件

move 路径\文件名 路径\文件名 :把一个文件移动(就是剪切+复制)到另一个地方。

删除文件

//这个是专门删除文件的,不能删除文件夹
del 文件名

ping

//用来测试网络是否畅通
ping ip(主机名)

taskkill

列出所有任务及进程号,杀进程

taskkill

taskkill /?  获取使用帮助

taskkill是用来终止进程的。具体的命令规则如下:

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

描述:

这个命令行工具可用来结束至少一个进程。

可以根据进程 id 或映像名(Image)来结束进程。

参数列表:

/S system 指定要连接到的远程系统。
/U [domain]user 指定应该在哪个用户上下文

执行这个命令:

/P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。
/F 指定要强行终止的进程。
/FI filter 指定筛选进或筛选出查询的的任务。
/PID process id 指定要终止的进程的PID。
/IM image name 指定要终止的进程的映像名称。通配符 '*'可用来指定所有映像名。
/T Tree kill: 终止指定的进程和任何由此启动的子进程。
/? 显示帮助/用法。

例如:

TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM QQ.exe
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe

netstat 查看网络连接状态

显示协议统计信息和当前 TCP/IP 网络连接。该命令可以查看当前机器建立的所有网络链接状态,以及对应哪个进程。

netstat -help 获取命令行使用帮助信息

netstat -ano  //查看网络连接、状态以及对应的进程id

语法:

netstat [选项]

参数:

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

find

find /?获取使用帮助

netstat -ano|find ".8"   //使用管道符,进行模糊查询

tracert

tracert也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径。

tracert /? 获取使用帮助

查看cmd下的命令

1、使用help命令,查看所有的dos命令

使用这个命令之后,我们可以看到所有的dos命令,并且后面还有中文的解释。简直不要太赞,这样我们就可以根据自己的需求要找到想要使用的命令。

2、找到命令之后,使用 命令+ /?来查看该命令下的其他属性

命令 -help    //第1种形式的使用帮助

命令  /?       //第2种形式的使用帮助

注意:这些字符只能是英文的

start

打开新终端

move

移动

高级命令

set

变量读入

SET /P variable=[promptString]

将变量变量数值设成用户输入的一行输入

(set/p variablre=[空格]:空格也会被输出。)

@echo off
::下面 k 值是 16 个空格。
set k=
echo %k%水光潋滟晴方好, 
echo %k%山色空蒙雨亦奇。 
echo %k%欲把西湖比西子, 
echo %k%淡妆浓抹总相宜。 
pause

数学计算

SET /A expression

指定等号右边的字符串为待计算的数字表达式

@echo off
::下面 k 值是 16 个空格。
set k=
echo %k%水光潋滟晴方好, 
echo %k%山色空蒙雨亦奇。 
echo %k%欲把西湖比西子, 
echo %k%淡妆浓抹总相宜。 
pause

字符串计算

%PATH:str1=str2%

将字符串变量%PATH%中的 str1 替换为 str2

@echo off
set a=bbs.verybat.cn
echo 替换前的值: "%a%" 
set var=%a:.=伤脑筋%
echo 替换后的值: "%var%" 
pause

运行显示:
替换前的值: "bbs.verybat.cn"
替换后的值: "bbs 伤脑筋 verybat 伤脑筋 cn"

解释“set var=%a:.=伤脑筋% ”,a 是要进行字符替换的变量,"."为 要替换的值, "伤脑筋"为替换后的值, 执行后就会把变量%a%里面 的"."全部替换为"伤脑筋"。

if

实例代码:

@Echo Off
:1
Set /p str=《青玉案·元夕》作者是谁?
If not %str%==辛弃疾 echo 错误 & goto 1
If %str%==辛弃疾 echo 正确
:2
Set /p str=《红楼梦》前80回的作者是谁?
If not %str%==曹雪芹 echo 错误 & goto 2
If %str%==曹雪芹 echo 正确
Pause>Nul
::后面的依次类推

批处理for语句

(一)、for语句的基本用法

基本形式: Cmd下:

FOR %variable IN (set) DO command [command-parameters]

批处理中:

FOR %%variable IN (set) DO command [command-parameters]

区别:cmd下变量引用为%i,批处理下为%%i.

(二)、For /f 文本解析

它能够对字符串进行操作也能够对命令的返回值进行操作还可以 访问硬盘上的 ASCII 码文件比如 txt 文档等。常用于文本信息编辑 如查询、提取、替换等等 。

FOR /F "Delims=符号" %%I    IN (Command1)      DO Command2

for 默认以空格作分割符当我们没有写"delims=",就默认以空格分隔

for /f "tokens=1,2 delims=:" %%a in (易经.txt) do echo %%a %%b

1、“tokens=1,2”中 1 和 2 数字之间用的逗号必须是英文格式逗号。

2、这里需要显示两列的内容那么,echo 后面就需要用多个变量符 号%%a 和%%b。同样,如果需要显示三列内容就必须这么写 echo%%a%%b%%c。

(三)、遍历文件夹

For /r

1.基本形式:for /r 目录 %%i in (元素集合) do 命令语句集合 作用:列举“目录”及该目录路径下所有子目录,并把列举出来的目录路径和元素集合中的每一个元素拼接成形如“目录路径\元素”格式的新字符串,然后,对每一条这样的新字符串执行“命令语句集合”中的每一条命令。 2.当“元素集合”带以点号分隔的通配符?或的时候,把“元素集合”视为文件(不视为文件夹),整条语句的作用是匹配“目录”所指文件夹及其所有子文件夹下匹配的文件;若不以点号分隔,则把“元素集合”视为文件夹(不视为文件); 3.当省略掉“目录”时,则针对当前目录; 4.当元素集合中仅仅是一个点号的时候,将只列举目录路径;

★与dir /ad /s的区别:

For /r:不能显示隐藏文件,速度快 Dir /ad:可以指定特定格式,速度慢

For /d

作用:只能匹配第一层目录 带通配符时:匹配文件夹

For  /r /d

显示当前目录下所有的文件夹(包括子文件夹) 等价于dir /ad /s/b

(四)、For /l :计数循环

基本形式:

for /l %%i in (x,y,z) do (.......)

x——起始值 y——步长 y——终止值 (不能取0)

创建一系列文件

@echo off 
md text
rem cd text
for /l %%i in (1,2,20) do cd.> text\%%i.txt

(五)、FOR变量

变量 作用
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名

其中 I 为变量

ECHO off
SETlOCAL enabledelayedexpansion

SET FIND_DIR=E:\dirA\dirC\dirD

for /R %FIND_DIR% %%f in (*.txt) do (
    SET FULL_PATH=%%f
    ECHO 完整的路径: !FULL_PATH!

    SET FILE_DIR=%%~dpf
    ECHO 所在的目录: !FILE_DIR!

    SET FILE_NAME=%%~nf
    ECHO 无后缀文件: !FILE_NAME!

    SET FILE_EXT=%%~xf
    ECHO 文件名后缀: !FILE_EXT!

    SET "FILE_NAME_NOT_PATH=%%~nxf"
    ECHO 无路径文件: !FILE_NAME_NOT_PATH!

    SET "FULL_PATH_NOT_EXT=%%~dpnf"
    ECHO 无后缀全名: !FULL_PATH_NOT_EXT!
)
pause
--------------------- 
作者:AlbertS 
来源:CSDN 
原文:https://blog.csdn.net/albertsh/article/details/79651437 
版权声明:本文为博主原创文章,转载请附上博文链接!

运行结果

完整的路径: E:\dirA\dirC\dirD\eee.txt
所在的目录: E:\dirA\dirC\dirD\
无后缀文件: eee
文件名后缀: .txt
无路径文件: eee.txt
无后缀全名: E:\dirA\dirC\dirD\eee

基本操作

删除文件夹:rmdir /s/q aaa /s 表示删除子目录

辅助符号或命令

‘|’

“|”cmd命令中|代表前一个的输出代表后一个的输入

查找特定ip的网络连接及进程号:netstat -ano|find "192.168.1.10"

 重定向输出符号> >>

将原本输出到命令窗口的内容,转存到文件中,如jstack 12912 >d:/s.txt 打印线程到指定文件

cmd > 重定向输出并覆盖源文件。

例如

echo hello >c:\1.txt  // 1.txt的文件内容先被清空,然后写入hello。

cmd >>重定向输出追加到文件末尾

例如:

echo hello >>c:\1.txt  // 在1.txt文件末尾加上hello

重定向输入符号< <<

cmd < file

使cmd命令从file读入

cmd << text

从命令行读取输入,直到一个与text相同的行结束。

除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。

如果使用 <<- ,则会忽略接下来输入行首的tab,结束行也可以是一堆tab再加上一个与text相同的内容,可以参考后面的例子。

cmd <<< word

把word(而不是文件word)和后面的换行作为输入提供给cmd。

cmd <> file

以读写模式把文件file重定向到输入,文件file不会被破坏。仅当应用程序利用了这一特性时,它才是有意义的。

cmd >| file

功能同>,但即便在设置了noclobber时也会覆盖file文件,注意用的是|而非一些书中说的!,目前仅在csh中仍沿用>!实现这一功能。

终止一直在运行的命令ctrl+c

有时某个命令一直打印输出结果(如ping 192.168.1.10 -t),我们想终止这个命令的执行,直接按ctrl+c即可。

清空cmd窗口内容命令cls

有时cmd内容太多,滚动费尽,需要清空屏幕内容,直接输入cls即可

cmd命令中,按键盘的向上箭头可以直接复制前一个命令


版权声明嗨网博客部分文章源自网络收集,不代表嗨网立场,如涉及侵权请联系嗨网删除。
其他若无特别说明则为嗨网原创文章、持续更新。未授权媒体、微信公众号不得使用嗨网内容。 个人自媒体可署名、保留原始链接的情况下转载
转载请注明 来源嗨网higrid.net,链接: https://higrid.net/posts/windows-cmd.html
本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除