cmd-for 参数:/D /R /L /F
/D: for /d %i in (c:\*) do echo %i -- /d 只显示目录
/R: for /r c:\ %i in (*.exe) do echo %i -- /r 搜索指定路径及子路径下的所有文件
/L: for /l %i in (100,-20,1) do @echo %i --增量形式循环,输出100,80,60,40,20
/F: 1. for /f "tokens=1,2 delims=-, " %a in ("aa bb,cc-dd ee") do echo %a %b %c %f -- aa bb %c %f
ps: tokens=1,2,3* > 将每行中的第一个, 第二个字符 赋值给第一个变量, 第二个变量
delims=-, > 指定分给符
%a > 指定变量开始位置(最多到%z), 一一对应tokens指定值,比如1,2,3* > 1-%a 2-b% 3-%c %d对应之后所有变量 ...
-- 1,2,3-30 前三十个字符一一对应
2. FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
ps: myfile.txt 文件中, 忽略;开头的行,
3. for /f "skip=10 tokens=1,2,3-10 delims=: " %a in ('netsh wlan show profiles') do (netsh wlan show profiles name="%b" key=clear | find "关键内容")|| echo "pwd not exists"
ps: 查询wifi和密码
skip:跳过前面几行
4. 如果使用了usebackq参数后,命令如下,结果与上面的完全相同。
1,分析文件的例子
FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%i in ("d:\test.txt") do echo %%i %%j %%k
2,分析字符串的例子:
for /f "usebackq tokens=1,2,3* delims=-, " %%i in ('aa bb,cc-dd ee') do echo %%i %%j %%k %%l
3,分析命令输出的例子:(会枚举当前环境中的环境变量名称和值。)
FOR /F "usebackq tokens=1* delims==" %%i IN (`set`) DO @echo [%%i----%%j]
ps:查询wifi和密码:
type nul>d:\myFile.txt & for /f "skip=10 tokens=1,2,3-10 delims=: " %a in ('netsh wlan show profiles') do echo "WIFI NAME: %b PWD:">>d:\myFile.txt & ((netsh wlan show profiles name="%b" key=clear | find "关键内容")|| echo " 关键内容 : Not Exists" )>>d:\myFile.txt
ps: 1. cmd命令可以运行,bat不能运行?> 把%替换为%%
2. bat中文乱码?> 把bat文件转化为ANSI编码
cmd-for循环
最新推荐文章于 2024-08-23 10:20:21 发布
本文详细介绍了Windows批处理CMD中for命令的四种参数用法:/D用于显示目录,/R搜索指定路径下所有文件,/L进行增量循环,/F用于解析文件、字符串或命令输出。通过实例展示了如何设置tokens、delims等选项,以及在不同场景下的应用,如查询WiFi密码。同时,提到了如何处理中文乱码问题和在批处理中使用命令的技巧。
摘要由CSDN通过智能技术生成