七仙花 发表于 2021-1-18 12:32:48

这两段代码哪个执行效率高?

代码一
@echo off
Setlocal Enabledelayedexpansion
for /f "delims=" %%i in ('wmic datafile where "filename='ospp' and Extension='vbs'" get name') do (set /a n+=1 & if !n! equ 2 set "V=%%i")
echo %V%
pause
代码二
@echo off
Setlocal Enabledelayedexpansion
for /f "skip=1 delims=" %%i in ('wmic datafile where "filename='ospp' and Extension='vbs'" get name') do (set /a n+=1 & if !n! equ 1 set "V=%%i")
echo %V%
pause

窄口牛 发表于 2021-1-18 12:40:07

你加两句取时的语句打印出来就知道了。

心零 发表于 2021-1-18 14:04:12

看不懂,看不懂!

nttwqz 发表于 2021-1-18 14:26:18

恕我眼拙,没看出两句有多大的区别,难道楼主认为一个skip=1会节省点时间?你试试一个上千行的文本,skip=100和无试试,看看能省多少时间。

七仙花 发表于 2021-1-18 17:58:26

nttwqz 发表于 2021-1-18 14:26
恕我眼拙,没看出两句有多大的区别,难道楼主认为一个skip=1会节省点时间?你试试一个上千行的文本,skip=1 ...

这不是节省时间的问题,我是想知道加一个skip=1和 if !n! equ 2,for运行的次数是否一样,对变量的存储是存一次还是两次

七仙花 发表于 2021-1-18 18:12:01

结果出来了,加了skip=1,循环了两次,变量V赋值两次,不加循环3次,变量V赋值3次





nttwqz 发表于 2021-1-19 16:19:31

七仙花 发表于 2021-1-18 18:12
结果出来了,加了skip=1,循环了两次,变量V赋值两次,不加循环3次,变量V赋值3次

你还是没有明白……
页: [1]
查看完整版本: 这两段代码哪个执行效率高?