17370845950

windows 批处理命令必知必会

以下是根据您提供的txt文件内容进行的伪原创处理,保持了原文的大意和图片位置,同时不改变原文的语言:


Windows批处理命令必知必会

在这篇文章中,我们将详细探讨Windows批处理命令的几个关键特性和用法,包括

for
命令、
@echo off
命令以及
setlocal enabledelayedexpansion
命令。

1、for命令

for
命令在批处理脚本中非常常用,用于遍历文件或执行循环操作。以下是
for
命令的几个重要参数及其使用示例:

(1) /f参数

/f
参数用于扫描文件并打印文件的所有内容。以下是示例代码:

for /f %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

如果不使用

/f
参数,输出将仅显示文件名:

(2) delims参数

delims
参数用于按指定的字符串分割内容,默认情况下只显示第一个分隔符前的内容。以下是使用顿号分割的示例代码:

@echo off
for /f "delims=、" %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

注意文件编码,因为顿号是中文字符。分割后只显示分隔符前的内容。

(3) tokens参数

tokens
参数用于解决
delims
参数的缺点,即只取分割后的第一个内容。以下是提取顿号后内容的示例代码:

for /f  "tokens=2 delims=、" %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

(4) tokens参数与delims参数的联合使用

tokens
delims
参数可以一起使用,按多个字符分割并提取特定列。以下是使用顿号和点号分割并提取第二列的示例代码:

@echo off
for /f  "tokens=2 delims=、." %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

(5) 通过tokens提取多列

假设需要提取序号和后缀,以下是相应的示例代码:

@echo off
for /f "tokens=1,3 delims=、-." %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i %%j
pause>nul 

关于

for
命令的更多信息,请参考 Microsoft文档。

2、@echo off命令

@echo off
命令用于关闭所有命令的回显,包括本身。以下是使用
@echo off
命令的示例代码:

@echo off
for /f %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

输出仅显示文本内容,没有多余的执行信息。如果不使用

@echo off
,则会显示所有执行信息:

echo off
for /f %%i in (C:\Users\Administrator\Desktop\test.txt) do echo %%i
pause>nul 

关于

echo
命令的更多信息,请参考 Microsoft文档。

3、setlocal enabledelayedexpansion延迟环境变量扩展

Windows批处理命令对变量的处理采用替换方式,且是一句一句执行的。以下是几个示例:

(1) 定义和输出变量

set var=1
echo %var%

输出正常,因为这是两条独立的语句。下面是另一种写法:

set var=1 & echo %var%

输出为0,因为

cmd
将其视为一条语句,
set var=1
尚未执行。

(2) 使用setlocal enabledelayedexpansion

通过

setlocal enabledelayedexpansion
,可以实现延迟变量扩展,拆分语句逐个执行。以下是示例代码:

@echo off & setlocal enabledelayedexpansion
set var=1 & echo !var!
pause

(3) 使用延迟扩展的变量标记

由于

cmd
的特性,使用延迟扩展时,需要使用
!!
而不是
%%
来标记变量。

通过以上示例,我们可以更好地理解Windows批处理命令的使用和特性。希望这些信息对您有所帮助。