批处理(Batch Processing)是一种使用批处理文件(.bat)来执行一系列命令的方法。在Windows操作系统中,CMD(命令提示符)是执行批处理文件的主要工具。在批处理中,有一些特殊的指令被称为“保留指令”,它们具有特殊的功能,可以帮助我们更高效地编写批处理脚本。本文将详细介绍CMD中的保留指令用法。

1. % 符号

在批处理中,% 符号用于引用环境变量、变量和命令的输出。以下是一些常见的用法:

1.1 引用环境变量

环境变量是存储在系统中的变量,可以用来存储路径、用户名等信息。使用 % 符号可以引用环境变量。

@echo off
setlocal
set "path=%PATH%"
echo The path is %path%
endlocal

在上面的例子中,我们首先使用 setlocal 指令来启用局部变量,然后使用 %PATH% 引用环境变量 PATH 的值。

1.2 引用变量

在批处理中,可以使用 set 指令来定义变量。使用 % 符号可以引用这些变量。

@echo off
setlocal
set "name=John"
echo Hello, %name%
endlocal

在上面的例子中,我们定义了一个名为 name 的变量,并将其值设置为 John。然后使用 %name% 引用这个变量的值。

1.3 引用命令输出

使用 % 符号可以引用命令的输出。

@echo off
setlocal
for /f "tokens=1-4 delims= " %%a in ('dir') do (
    echo File: %%a
)
endlocal

在上面的例子中,我们使用 dir 命令列出当前目录下的文件,然后使用 % 符号引用命令的输出。

2. %~ 符号

%~ 符号用于处理文件名和路径。以下是一些常见的用法:

2.1 获取不带扩展名的文件名

@echo off
setlocal
set "filename=%~n1"
echo The filename is %filename%
endlocal

在上面的例子中,我们使用 %~n1 获取第一个参数(命令行参数)不带扩展名的文件名。

2.2 获取不带路径的文件名

@echo off
setlocal
set "filename=%~nx1"
echo The filename is %filename%
endlocal

在上面的例子中,我们使用 %~nx1 获取第一个参数不带路径和扩展名的文件名。

2.3 获取完整路径

@echo off
setlocal
set "path=%~f1"
echo The path is %path%
endlocal

在上面的例子中,我们使用 %~f1 获取第一个参数的完整路径。

3. %! 符号

%! 符号用于引用批处理脚本中的参数。

3.1 引用脚本参数

@echo off
setlocal
echo The first argument is %1
echo The second argument is %2
endlocal

在上面的例子中,我们使用 %1%2 引用脚本的两个参数。

3.2 引用脚本行号

@echo off
setlocal
echo The current line number is %!
endlocal

在上面的例子中,我们使用 %! 引用当前行的行号。

4. 总结

通过以上介绍,相信你已经对CMD中的保留指令用法有了更深入的了解。在编写批处理脚本时,合理使用保留指令可以让我们更加高效地完成任务。希望这篇文章能帮助你轻松学会批处理在CMD中的保留指令用法。