中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 21:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教FOR /F "delims=" 句的意思~ 查看 714 回复 5
楼 主 请教FOR /F "delims=" 句的意思~ 发表于 2008-09-27 13:10 ·  中国 湖北 武汉 电信
初级用户
积分 55
发帖 25
注册 2007-05-11 21:41
19年会员
UID 88224
性别 男
状态 离线
@echo off
FOR /F "delims=" %%I in (%0) do Set TP=%%~dpI
regsvr32 /s "%TP%isoshell.dll"
cd /d "%TP%drivers"
"%TP%drivers\isocmd.exe" -i
2 发表于 2008-09-27 13:26 ·  中国 浙江 宁波 电信
初级用户
积分 62
发帖 24
注册 2008-09-17 19:59
17年会员
UID 125888
性别 男
状态 离线
"delims=" 无任何分割符(去掉默认的分隔符空格和;),完整列出整行内容包括行首空格
而”tokens=*“这个能去行首空格列出一行内容,估计行内多空格会被单空格替换吧

@echo off
:: 进入批处理所在目录
cd /d %~dp0
regsvr32 /s "isoshell.dll"
cd /d "%~dp0drivers"
“%~dp0drivers\isocmd.exe" -i
这样可以吗
或者
@echo off
set pash=%~dp0;%~dp0drivers;%pash%
regsvr32 /s "isoshell.dll"
isocmd.exe" -i

[ Last edited by ygrzzz on 2008-9-27 at 13:39 ]
3 发表于 2008-09-27 13:36 ·  中国 湖北 武汉 电信
初级用户
积分 55
发帖 25
注册 2007-05-11 21:41
19年会员
UID 88224
性别 男
状态 离线
谢谢,能不能再说的详细点?
4 发表于 2008-09-27 13:44 ·  中国 浙江 宁波 电信
初级用户
积分 62
发帖 24
注册 2008-09-17 19:59
17年会员
UID 125888
性别 男
状态 离线
FOR /F "delims=" %%I in (%0) do Set TP=%%~dpI
对这句我理解仅仅是利用%0(代表批处理自身)
然后%%~dpI扩展到批处理自身所在的目录,这样的话就绕了个大弯
直接%~dp0就代表批处理所在目录啊
5 发表于 2008-09-27 13:47 ·  中国 湖北 武汉 电信
初级用户
积分 55
发帖 25
注册 2007-05-11 21:41
19年会员
UID 88224
性别 男
状态 离线
谢谢.....我慢慢看看...
6 发表于 2008-09-27 17:36 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
下次提问之前记得先在本版搜索一下delims=
论坛跳转: