批处理中怎么定义变量来接收find找到的值

2024年11月22日 19:24
有1个网友回答
网友(1):

可以用fot命令,这是个功能很强的循环命令,可以对字符串、文件或命令产生的多行字符串逐行进行灵活处理,当然也包括将其赋给某变量(很多情况可把这步赋给变量免了,直接在for循环内处理就行)简单参考格式:
for /f "delims=" %%i in ('某某命令') do set "var=%%i"
注:"delims=" 表示对一行内容不要分段取其全体(不然可能只取到默认分隔符分开后的第一段,它是有语法可以自定义分隔符灵活地取某些段的)%%i 表示以它代表定义的第一段,'某某命令' 的单引号是表示其中是命令,某某命令一般是照写但如此命令中含 ><&| )等等特殊符时需加^转义,比如在文件abc.txt中查找"xxx" 本来是写为
find "xxx"<"abc.txt"
但写到此处要写成 'find "xxx"^<"abc.txt"'
当然如果不止找到一行,由于for是逐行循环执行do后的命令 set "var=%%i" '使得最终被赋给最后一次的值
如果想进一步了解for的用法请在网上搜教程