找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26678|回复: 6

[文件操作] 批处理对for语句的%%i/%%a直接进行字符串截取为何不能实现

[复制链接]
发表于 2009-10-2 19:25:46 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-3 15:01 编辑

看了此强帖:http://www.bathome.net/viewthread.php?tid=40&highlight=%D7%D6%B7%FB%BD%D8%C8%A1
做以下练习

  1. @echo off
  2. for /f %%i in (ip) do (
  3. echo %%i:~0,10%%
  4. )
  5. pause
复制代码
文件ip内容为

  1. ABCDEFG1192.168.10.1
  2. ABCDEFG2192.168.10.2
  3. ABCDEFG3192.168.10.3
复制代码
执行结果如下:

  1. ABCDEFG1192.168.10.1:~0,10%
  2. ABCDEFG2192.168.10.2:~0,10%
  3. ABCDEFG3192.168.10.3:~0,10%
  4. 请按任意键继续. . .
复制代码
我哪里错了?请指教
发表于 2009-10-2 20:02:02 | 显示全部楼层
只能用在SET定义出来的变量..

[ 本帖最后由 bhsx 于 2009-10-2 20:18 编辑 ]
发表于 2009-10-2 20:23:19 | 显示全部楼层
文件IP是那么写进去的吗?
应该是、、忘了、、、、、
 楼主| 发表于 2009-10-2 20:40:24 | 显示全部楼层
  1. @echo off
  2. for /f %%i in (ip) do (
  3. call set s=%%i%%
  4. call set b=%%s:~0,8%%
  5. call echo %%b%%
  6. )
  7. pause
复制代码
发表于 2009-10-2 21:05:53 | 显示全部楼层
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. for /f %%i in (ip) do (
  3. set i=%%i
  4. echo !i:~0,10!
  5. )
  6. pause
复制代码
TRY,没试过
 楼主| 发表于 2009-10-4 00:57:58 | 显示全部楼层
原帖由 Seter 于 2009-10-2 21:05 发表
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /f %%i in (ip) do (
set i=%%i
echo !i:~0,10!
)
pauseTRY,没试过

测试过  可以的
请问“!...!”这个如何理解
发表于 2009-10-4 07:31:42 | 显示全部楼层
去论坛搜索一下叭...这个我解释不清楚...
关于setlocal:   http://bbs.bathome.net/viewthread.php?tid=2051&highlight=setlocal
我感觉!也可以当作普通的%来使用...不过这种情况多用在嵌套里...

[ 本帖最后由 Seter 于 2009-10-4 07:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:36 , Processed in 0.029781 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表