Windows 命令行快速上手

2023-10-12 15:22:06 浏览数 (1)

0.前言

Windows 命令在开发工作相较于 Linux 命令并没有那么常用,但是常见的命令还是需要掌握,下面就列举软件开发人员必知必会的命令。

1.必知点

批处理文件

Windows 脚本文件被被称为批处理文件或命令行脚本,后缀名为 .bat 或 .cmd,在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用 cmd.exe 按照该文件中各个命令出现的顺序来逐个运行它们。

使用批处理文件可以简化日常或重复性任务。

注释

推荐使用双冒号进行单行注释,使用 goto 标签进行多行注释。

代码语言:javascript复制
::单行注释

goto end
这些是多行注释
这些是多行注释
:end

命令分隔符

Windows 使用 & 在一行分隔多条命令,命令格式如下:

代码语言:javascript复制
第一条命令  &  第二条命令  [&  第三条命令...]

另外 && 和 || 也可用于分隔命令。区别在于 && 连接的多条命令只有前面的命令执行成功,后面的才会执行。|| 连接的多条命令,只有前面的命令执行失败后,才执行后面的命令。

帮助

要想查看命令行命令的帮助信息,使用 /? 选项或 help 命令。

代码语言:javascript复制
cd /?

:: 或
help cd

3.必知命令

cd

显示当前目录的名称或更改当前目录。

代码语言:javascript复制
:: 无参数执行 cd 打印当前工作目录。
cd

:: 进入到指定目录。
cd DIR

set

显示、设置或删除 cmd.exe 环境变量。也可以用于定义变量。

代码语言:javascript复制
:: 显示所有环境变量
set

:: 显示指定环境变量
set NAME

:: 临时设置环境变量
set NAME=VALUE

:: 临时删除环境变量
set NAME=

setx

setx 用于永久创建或修改环境变量。注意,设置后在新的命令行窗口才能生效。

代码语言:javascript复制
:: 永久设置用户环境变量
setx NAME VALUE

:: 永久删除用户环境变量
setx NAME ""

:: 永久设置系统环境变量。需要管理员权限
setx /M NAME VALUE

:: 永久删除系统环境变量。需要管理员权限
setx /M NAME ""

:: 追加用户环境变量
setx NAME %NAME%;VALUE

:: 查看帮助信息
setx /?

dir

显示目录的文件和子目录的列表。

代码语言:javascript复制
:: 显示当前目录文件列表
dir

:: 显示指定目录文件列表
dir DIR

:: 显示指定文件信息。支持通配符 *
dir FILE_NAME

type

在 Windows 命令 shell 中,type 是显示文本文件内容的内置命令。

在 PowerShell 中,type 是 Get-Content cmdlet 的内置别名,它也显示文件的内容,但使用不同的语法。

命令格式:

代码语言:javascript复制
type [<drive>:][<path>]<filename>

示例:

代码语言:javascript复制
:: 打印文本文件全部内容
type FILE_NAME

more

用于逐页显示文本文件内容。

它允许你按页查看文本文件,以避免在终端窗口中一次显示太多内容,从而使文本更易于阅读。

使用 more 命令时,可以按以下方式进行操作:

按下空格键:显示下一页文本内容。 按下回车键:显示下一行文本内容。 按下 Q 键:退出 more 命令,返回到命令提示符。

命令格式:

代码语言:javascript复制
<command> | more [/c] [/p] [/s] [/t<n>] [ <n>]
more [[/c] [/p] [/s] [/t<n>] [ <n>]] < [<drive>:][<path>]<filename>
more [/c] [/p] [/s] [/t<n>] [ <n>] [<files>]

选项说明:

代码语言:javascript复制
/c		在显示页面之前清除屏幕。
/p		扩展换页字符。
/s		将多个空行显示为单个空行。
/t<n>	将制表符显示为 n 指定的空格数。
 <n>	显示第一个文件,从 n 指定的行开始。

示例:

代码语言:javascript复制
:: 分屏显示文件内容
more FILE

echo

显示消息或打开或关闭命令回显功能。如果不带参数使用,echo 将显示当前的 echo 设置。

语法:

代码语言:javascript复制
echo [<message>]
echo [on | off]

示例:

代码语言:javascript复制
:: 显示当前 echo 设置
echo

:: 打印变量值
echo %NAME%

:: 打印指定内容到标准输出
echo CONTENT

md / mkdir

创建目录。

语法:

代码语言:javascript复制
md [<drive>:]<path>
mkdir [<drive>:]<path>

示例:

代码语言:javascript复制
:: 在当前目录创建新目录。
md DIR_NAME

:: 相对于根目录创建目录树。
```shell
md TaxesPropertyCurrent

del / erase

删除一个或多个文件。

语法:

代码语言:javascript复制
del [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>
erase [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>

选项:

代码语言:javascript复制
/p 删除指定文件之前提示确认。
/f 强制删除只读文件。
/s 从当前目录和所有子目录中删除指定文件。 显示正在删除的文件的名称。
/q 安静模式。系统不会提示您确认删除。
/a[:]<attributes> 根据以下文件属性删除文件:
	r 只读文件
	h 隐藏文件
	i 不是内容索引文件
	s 系统文件
	a 准备归档的文件
	l 重解析点,如符号链接、目录交接点和卷挂载点
	- 用作前缀,意思是“不”

示例:

代码语言:javascript复制
:: 删除文件
del FILE

rd / rmdir

删除目录。

语法:

代码语言:javascript复制
rd [<drive>:]<path> [/s [/q]]
rmdir [<drive>:]<path> [/s [/q]]

选项:

代码语言:javascript复制
/s 删除目录树(指定目录及其所有子目录,包括所有文件)
/q 删除非空目录时不提醒。/q 只有在使用 /s 选项时才有效

示例:

代码语言:javascript复制
:: 删除目录
rd DIR

:: 删除非空目录,会有交互式提醒是否删除
rd /s DIR

:: 删除非空目录时不提醒
rd /s /q DIR

move

移动或重命名文件或目录。

语法格式:

代码语言:javascript复制
move [{/y|-y}] [<source>] [<target>]

/y 停止提示是否要覆盖现有目标文件。是否提示由环境变量 COPYCMD 事先设置。 -y 提示是否要覆盖现有目标文件。

  1. 更改文件或目录名。
代码语言:javascript复制
move OLD_NAME NEW_NAME
  1. 移动文件或目录。
代码语言:javascript复制
move FILE DIR

move SRC_DIR DIR
  1. 移动多个文件。
代码语言:javascript复制
move data*.xls second_qreports

copy

将一个或多个文件从一个位置复制到另一个位置。

常用选项如下:

代码语言:javascript复制
/a: 表示待移动的是 ASCII 文本文件。
/b:表示待移动的是二进制文件。
/d:允许将正在复制的加密文件保存为目标位置的解密文件。
/v:验证每个新文件的一致性。
/n:新文件名后附加一个数字以防止覆盖现有文件。
/y:不提示确认是否覆盖现有文件。
/-y:提示确认是否覆盖现有文件(默认行为)。
/z:以可重新启动模式复制网络文件。
  1. 复制文件
代码语言:javascript复制
copy source_file destination
  1. 使用通配符或加号复制多个文件。
代码语言:javascript复制
copy source_file1 source_file2 ... destination
  1. 复制目录下的所有文件。
代码语言:javascript复制
copy dir destination

不能递归复制子目录,如果想递归复制子目录,需要使用 xcopy 命令。

xcopy

复制文件和目录,包括子目录。

基本用法:

代码语言:javascript复制
xcopy source destination

source:要复制的源文件或目录的路径。 destination:复制后的目标位置的路径。

常用选项:

代码语言:javascript复制
/c:继续复制,即使发生错误。
/d [:MM-DD-YYYY]:仅复制在指定日期或之后更改的文件。如果不包含 MM-DD-YYYY 值,xcopy 将复制比现有目标文件新的所有源文件。此命令行选项允许您更新已更改的文件。
/e:递归复制子目录及其内容,包括空目录。
/h:复制隐藏和系统文件。
/i:如果目标是目录或包含多个文件,将其视为目标目录。
/k:复制文件并保留目标文件的只读属性(如果源文件中存在)。 默认情况下,xcopy 删除只读属性。
/l:生成要复制的文件列表,但不主动复制文件。
/q:不显示复制的文件和目录名。
/r:复制只读文件。
/s:递归复制子目录及其内容。
/v:验证每个新文件的一致性。
/y:不提示确认是否覆盖现有文件。
  1. 复制文件。
代码语言:javascript复制
xcopy file dir
  1. 递归复制文件夹及其内容到目标目录,包括空目录。
代码语言:javascript复制
xcopy C:sourcefolder D:destination /s /e
  1. 获取上一个命令要复制的文件列表,即不实际复制文件。
代码语言:javascript复制
xcopy rawdata reports /d:12-29-1993 /l > xcopy.out

cls

清除命令提示符窗口。

代码语言:javascript复制
:: 清屏
cls

help

显示可用命令的列表或指定命令的详细帮助信息。 如果不带参数使用,帮助会列出并简要描述每个系统命令。

代码语言:javascript复制
:: 查看指定命令的帮助信息
help CMD_NAME

参考文献

Windows commands CSDN.dos 命令特殊符号

0 人点赞