标题: [文件操作] 批处理对for语句的%%i/%%a直接进行字符串截取为何不能实现 [打印本页]
作者: adam_chenzh 时间: 2009-10-2 19:25 标题: 批处理对for语句的%%i/%%a直接进行字符串截取为何不能实现
本帖最后由 pcl_test 于 2016-9-3 15:01 编辑
看了此强帖:http://www.bathome.net/viewthread.php?tid=40&highlight=%D7%D6%B7%FB%BD%D8%C8%A1
做以下练习-
- @echo off
- for /f %%i in (ip) do (
- echo %%i:~0,10%%
- )
- pause
复制代码
文件ip内容为-
- ABCDEFG1192.168.10.1
- ABCDEFG2192.168.10.2
- ABCDEFG3192.168.10.3
复制代码
执行结果如下:-
- ABCDEFG1192.168.10.1:~0,10%
- ABCDEFG2192.168.10.2:~0,10%
- ABCDEFG3192.168.10.3:~0,10%
- 请按任意键继续. . .
复制代码
我哪里错了?请指教
作者: bhsx 时间: 2009-10-2 20:02
只能用在SET定义出来的变量..
[ 本帖最后由 bhsx 于 2009-10-2 20:18 编辑 ]
作者: canyuexiaolang 时间: 2009-10-2 20:23
文件IP是那么写进去的吗?
应该是、、忘了、、、、、
作者: adam_chenzh 时间: 2009-10-2 20:40
- @echo off
- for /f %%i in (ip) do (
- call set s=%%i%%
- call set b=%%s:~0,8%%
- call echo %%b%%
- )
- pause
复制代码
作者: Seter 时间: 2009-10-2 21:05
- @echo off&setlocal ENABLEDELAYEDEXPANSION
- for /f %%i in (ip) do (
- set i=%%i
- echo !i:~0,10!
- )
- pause
复制代码
TRY,没试过
作者: adam_chenzh 时间: 2009-10-4 00:57
原帖由 Seter 于 2009-10-2 21:05 发表
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /f %%i in (ip) do (
set i=%%i
echo !i:~0,10!
)
pauseTRY,没试过
测试过 可以的
请问“!...!”这个如何理解
作者: Seter 时间: 2009-10-4 07:31
去论坛搜索一下叭...这个我解释不清楚...
关于setlocal: http://bbs.bathome.net/viewthread.php?tid=2051&highlight=setlocal
我感觉!也可以当作普通的%来使用...不过这种情况多用在嵌套里...
[ 本帖最后由 Seter 于 2009-10-4 07:35 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |