中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 09:05
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » !var:~4,1是什么意思?
可打印版本  743 / 3
第1楼 24634080 发表于 2007-04-27 03:58
初级用户 发帖 20 积分 36
!var:~4,1是什么意思?
@echo off
:: 把某个目录下所有txt中第三行第四个数字相加
:: code by jm 2006-9-9 CMD@XP
set num=0
setlocal enabledelayedexpansion
:: 其实用skip=2来跳过头两行的效率更高
for %%i in (*.txt) do (
set file=%%i
for /f "tokens=1* delims=:" %%j in ('findstr /n . !file!') do (
set var=%%k
if %%j equ 1 (set num_=!var:~4,1!)&& set /a num=!num!+!num_!
)
)
echo 相加后的结果是 %num%
pause
goto :eof
上面的=!var:~4,1!是什么意思?谢谢!
第2楼 lxmxn 发表于 2007-04-27 04:10
版主 发帖 4,938 积分 11,386
这是变量的字符截取功能,意思是取var变量的第5个字符。

参考一下这个链接:http://www.cn-dos.net/forum/viewthread.php?tid=25746&fpage=1
第3楼 24634080 发表于 2007-04-27 04:11
初级用户 发帖 20 积分 36
谢谢!
第4楼 lililulula 发表于 2007-04-27 04:16
中级用户 发帖 138 积分 302
取第5个数字 
脚本的要求取第4个数字应该是!var:~3,1!才对

还有感觉脚本取第3行内容
if %%j equ 1 (set num_=!var:~4,1!)&& set /a num=!num!+!num_!
这句应该是
if %%j equ 3 (set num_=!var:~3,1!)&& set /a num=!num!+!num_!
才对啊

[ Last edited by lililulula on 2007-4-26 at 03:35 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023